Funktionerna Now, Today, IsToday, UTCNow, UTCToday, IsUTCToday

Gäller: Arbetsyteappar Datorflöden Dataverse formelkolumner Modellbaserade appar Power Platform CLI

Returnerar aktuellt datum och tid och testar om ett Date/Time-värde är i dag.

Kommentar

PAC CLI pac power-fx kommandon stöder inte funktionerna UTCNow, UTCToday och IsUTCToday.

Beskrivning

Funktionen Now returnerar aktuellt datum och tid som ett Date/Time-värde.

Funktionen Today returnerar aktuellt datum som ett Date/Time-värde. Tidsdelen är midnatt. Today har samma värde under hela dagen, från midnatt i dag till midnatt i morgon.

Funktionen IsToday testar om ett datum-/tidsvärde är mellan midnatt i dag och midnatt i morgon. Den här funktionen returnerar ett booleskt värde (true eller false).

Funktionerna Now, Today och IsToday fungerar nu med den lokala tiden för den aktuella användaren.

Funktionerna UTCNow, UTCToday och IsUTCToday är samma som deras icke-UTC motsvarigheter men arbetar med tidszonsoberoende värden och använder Coordinated Universal Time (UTC).

Kommentar

  • Funktionerna UTCNow, UTCToday och IsUTCToday är endast tillgängliga i formelkolumnerna Microsoft Dataverse for Teams och endast för tidsoberoende fält och värden.
  • Now, Today och IsToday är inte tillgängliga i Dataverse for Teams formelkolumner som utvärderingar görs utan kännedom om den aktuella användarens lokala tidszon.
    Mer information: Arbeta med kolumner i formeltabeller i Dataverse for Teams

Se Date, Time och DateTime i dokumentationen om datatyper och arbeta med datum och tid för mer information.

Ej beständiga funktioner

Now, Today, UTCNow och UTCToday är ej beständiga funktioner. Dessa funktioner returnerar ett annat värde för varje utvärdering.

När en ej beständig funktion används i en dataflödesformel returneras endast ett annat värde om formeln som den ingår i utvärderas på nytt. Om inget annat ändras i formeln har den samma värde under programmets körning.

En label-kontroll med Label1.Text = Now() ändras exempelvis inte medan programmet är aktiv. Ett nytt värde skapas endast om programmet stängs och öppnas igen.

Funktionen utvärderas på nytt om den är en del av en formel som något annat har ändrats i. Om vi exempelvis ändrar vårt exempel så att det involverar en kontroll för skjutreglage med Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ) hämtas den aktuella tiden varje gång kontrollen för skjutreglagets värde ändras och etikettens textegenskap utvärderas på nytt.

När ej beständiga funktioner används i en beteendeformel utvärderas de varje gång en beteendeformel utvärderas. Nedan visas ett exempel.

Syntax

Använder användarens lokala tid

Now()

Today()

IsToday( DateTime )

  • DateTime – Krävs. Datum-/tidsvärdet som ska testas.

Använda UTC (Coordinated Universal Time)

UTCNow()

UTCToday()

IsUTCToday( TimeZoneIndependentTime )

  • TimeZoneIndependentDateTime – obligatorisk. Tidszonsoberoende datum/tidsvärde som ska testas.

Exempel

För exemplen i det här avsnittet är den aktuella tiden 20:58 den 11 juli 2021 i Pacific Time Zone (UTC-8) och språket är en-us.

Formel Beskrivning Resultat
Text( Now(), "mm/dd/yyyy hh:mm:ss" ) Hämtar aktuellt datum och tid i användarens tidszon och visar det som en sträng. "07/11/2021 20:58:00"
Text( Today(), "mm/dd/yyyy hh:mm:ss" ) Hämtar endast det aktuella datumet, låter tidsdelen vara midnatt och visar det som en sträng. "07/12/2021 00:00:00"
IsToday( Now() ) Testar om aktuellt datum och tid är mellan midnatt i dag och midnatt i morgon. true
IsToday( Today() ) Testar om aktuellt datum är mellan midnatt i dag och midnatt i morgon. true
Text( DateAdd( Now(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Hämtar aktuellt datum och tid, lägger till 12 dagar i resultatet och visar det som en sträng. "07/23/2021 20:58:00"
Text( DateAdd( Today(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Hämtar aktuellt datum, lägger till 12 dagar i resultatet och visar det som en sträng. "07/23/2021 00:00:00"
IsToday( DateAdd( Now(), 12 ) ) Testar om aktuellt datum och tid, plus 12 dagar, är mellan midnatt i dag och midnatt i morgon. false
IsToday( DateAdd( Today(), 12 ) ) Testar om aktuellt datum, plus 12 dagar, är mellan midnatt i dag och midnatt i morgon. falskt
Hour( UTCNow() ) Hämtar aktuellt datum och tid i UTC och extraherar endast timmen, vilket är 8 timmar före lokal tid. 4
Day( UTCToday() ) Hämtar aktuellt datum och tid endast i UTC och extraherar dagen, vilket är 1 dag före lokal tid. 12
IsUTCToday( UTCNow() ) Testar om aktuellt datum och tid är mellan midnatt i dag och midnatt i morgon, alla i UTC-tid true
IsUTCToday( UTCToday() ) Testar om aktuellt datum är mellan midnatt i dag och midnatt i morgon, alla i UTC-tid true

Visa en klocka som uppdateras i realtid

  1. Lägg till en Timer-kontroll, ställ in dess egenskap för Duration till 1000 och ställ in egenskapen för Repeattrue.

    Timern körs i en sekund, startar om automatiskt och fortsätter med det mönstret.

  2. Ställ in egenskapen för kontrollen OnTimerEnd till den här formeln:

    Set( CurrentTime, Now() )

    När timern startar om (efter varje sekund) ställer den här formeln in den globala variabeln CurrentTime på det aktuella värdet i funktionen Now.

    En skärm som innehåller en timerkontroll med formeln OnTimerEnd = Set (CurrentTime, Now ()).

  3. Lägg till kontrollen Label och ange egenskapen Text till följande formel:

    Text( CurrentTime, LongTime24 )

    Använd funktionen Text för att formatera datum och tid som du önskar, eller ställ in egenskapen på CurrentTime om du vill visa timmar och minuter men inte sekunder.

    En skärm som innehåller en label-kontroll med Textegenskap inställd på Text (CurrentTime, LongTime24).

  4. Förhandsgranska appen genom att trycka på F5 och starta därefter timern genom att klicka eller trycka på den.

    Etiketten visar kontinuerligt den aktuella tiden i sekunder.

    Fyra skärmar som visar fyra tidsvärden (13:50:22, 13:50:45, 13: 51: 03 och 13:51:25).

  5. Ställ in timerns egenskap AutoStarttrue och egenskapen Visiblefalse.

    Timern är osynlig och startas automatiskt.

  6. Ställ in skärmens egenskap OnStart så att variabeln CurrentTime får ett giltigt värde, som i följande exempel:

    Set(CurrentTime, Now())

    Etiketten visas när programmet startar (innan timern körs i en hel sekund).