Funcions DateAdd, DateDiff i TimeZoneOffset al Power Apps

S'afegeix o es troba la diferència en els valors de data/hora i es converteix entre l'hora local i l'UTC.

Descripció

La funció DateAdd afegeix un nombre d'unitats a un valor de data/hora. El resultat és un nou valor de data/hora. També podeu restar un nombre d'unitats a un valor de data/hora especificant un valor negatiu.

La funció DateDiff retorna la diferència entre dos valors de data/hora. El resultat és un nombre enter d'unitats.

Per a ambdues funcionalitats, les unitats poden ser Mil·lisegons, Segons, Minuts, Hores, Dies, Mesos, Trimestres o Anys. Per defecte, les dues funcions utilitzen Dies com a unitats.

La funció TimeZoneOffset retorna el nombre de minuts entre l'hora local de l'usuari i l'UTC (temps universal coordinat).

Podeu utilitzar DateAdd amb TimeZoneOffset per convertir entre l'hora local de l'usuari i l'UTC (temps universal coordinat). Si afegiu TimeZoneOffset , convertirà una hora local en UTC i si la resteu (afegint el negatiu) convertirà una hora en UTC a l'hora local.

Vegeu també els tipus de dades Data, Hora i DateTime i treballar amb dates i hores per obtenir més informació.

Sintaxi

DateAdd( DateTime, Addition [, Unitats ] )

  • DateTime: obligatori. Valor de data/hora per operar.
  • Addition: obligatori. Número, en Unitats, per afegir a DateTime.
  • Unitats: opcional. El tipus d'Unitats per afegir: Mil·lisegons, Segons, Minuts, Hores, Dies, Mesos, Trimestres o Anys. Si no s'especifica, s'utilitzen Dies.

DateDiff( StartDateTime, EndDateTime [, Unitats ] )

  • StartDateTime: obligatori. Valor de data i hora d'inici.
  • EndDateTime: obligatori. Valor de data i hora de finalització.
  • Unitats: opcional. Tipus d'Unitats per restar: Mil·lisegons, Segons, Minuts, Hores, Dies, Mesos, Trimestres o Anys. Si no s'especifica, s'utilitzen Dies.

TimeZoneOffset( [ DateTime ] )

  • DateTime: opcional. Valor de data/hora per al qual es retorna el desplaçament. Per defecte, s'utilitza la data i l'hora actuals.

Exemples

En tots aquests casos, suposem que la data i l'hora actual és el 15 de juliol de 2013, 1:02 de la tarda.

DateAdd senzill

Fórmula Descripció Resultat
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Afegeix tres dies (unitats per defecte) a la data i l'hora actuals. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, Hores ),
"dd-mm-yyyy hh:mm" )
Afegiu quatre hores a la data i l'hora actuals. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, Mesos ),
"dd-mm-yyyy hh:mm" )
Afegeix un mes a la data actual, sense hora, ja que Today no retorna un component d'hora. "15-08-2013 00:00"
Text( DateAdd( Now(), ‑30, Minuts ),
"dd-mm-yyyy hh:mm" )
Resta 30 minuts a la data i l'hora actuals. "15-07-2013 12:32"

DateDiff senzill

Fórmula Descripció Resultat
DateDiff( Now(), DateValue("1/1/2014") ) Retorna la diferència entre les dues unitats a les unitats per defecte de Dies 170
DateDiff( Now(), DateValue("1/1/2014"), Mesos ) Retorna la diferència entre els dos valors en Mesos 6
DateDiff( Now(), Today(), Minuts ) Retorna la diferència entre la data i l'hora actuals i la data actual només (sense hora) en minuts. Atès que Now és posterior a Today, el resultat serà negatiu. -782

Diferència de dates amb resultats fraccionats

La funció DateDiff només retorna un nombre enter de les unitats que s'estan restant i la precisió s'especifica a la unitat especificada. Per calcular la diferència amb una precisió més alta, utilitzeu una unitat més petita i convertiu el resultat adient, com ara als exemples següents.

Fórmula Descripció Resultat
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), Hours ) Els minuts/segons s'ignoren, la diferència es basa en el temps fins a l'hora. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), Minutes )/60 Els minuts s'utilitzen en la diferència i el resultat es divideix per 60 per tenir la diferència en hores. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), Seconds )/3600 Els minuts i segons s'utilitzen en la diferència; el resultat es divideix per 3600 per tenir la diferència en hores. 0.51

Convertir a UTC

Per convertir a l'UTC (hora universal coordinada), afegiu el TimeZoneOffset per a l'hora donada.

Per exemple, imagineu que la data i l'hora actual és el 15 de juliol de 2013, 1:02 de la tarda a l'hora d'estiu del Pacífic (PDT, UTC-7). Per determinar l'hora actual en UTC, utilitzeu:

  • DateAdd( Now(), TimeZoneOffset(), Minuts )

TimeZoneOffset canvia per defecte per a l'hora actual, per la qual cosa no cal passar cap argument.

Per veure el resultat, utilitzeu la funció Text amb el format dd-mm-yyyy hh:mm, que retornarà 15-07-2013 20:02.

Convertir des de l'UTC

Per convertir des d'UTC, resteu el TimeZoneOffset (afegint-hi el negatiu) per a l'hora donada.

Per exemple, imagineu que la data i l'hora d'UTC del 15 de juliol del 2013 ales 8:02 del vespre s'emmagatzemen en una variable anomenada StartTime. Per ajustar l'hora per al fus horari de l'usuari, utilitzeu:

  • DateAdd( StartTime, −TimeZoneOffset( StartTime ), Minuts )

Observeu el signe negatiu abans de TimeZoneOffset per restar el desplaçament en comptes d'afegir-lo.

Per veure el resultat, utilitzeu la funció Text amb el format dd-mm-yyyy hh:mm, que resultarà en 15-07-2013 13:02 si sou a l'hora d'estiu del Pacífic.