Funkce Now, Today, IsToday, UTCNow, UTCToday, IsUTCToday

Platí pro: aplikace plátna desktopové toky sloupce vzorců Dataverse modelem řízené aplikace Power Platform CLI

Umožňují vrátit aktuální datum a čas a otestovat, jestli hodnota data a času odpovídá dnešku.

Poznámka:

Příkazy PAC CLI pac power-fx nepodporují funkce UTCNow, UTCToday a IsUTCToday.

Description

Funkce Now vrátí aktuální datum a čas jako hodnotu typu datum a čas.

Funkce Today vrátí aktuální datum jako hodnotu typu datum a čas. Jako čas se předpokládá půlnoc. Funkce Today má stejnou hodnotu v průběhu celého dne, od půlnoci na dnešek až do půlnoci na zítra.

Funkce IsToday testuje, jestli je hodnota data a času mezi půlnocí na dnešek a půlnocí na zítra. Tato funkce vrátí logickou hodnotu (true nebo false).

Funkce Now, Today a IsToday pracují s místním časem aktuálního uživatele.

Funkce UTCNow, UTCToday a IsUTCToday jsou stejné jako jejich protějšky mimo UTC, ale pracují s hodnotami nezávislými na časovém pásmu a používají koordinovaný světový čas (UTC).

Poznámka:

  • UTCNow, UTCToday a IsUTCToday jsou dostupné pouze ve sloupcích vzorců Microsoft Dataverse for Teams a pouze pro časově nezávislá pole a hodnoty.
  • Now, Today a IsToday nejsou dostupné ve sloupcích vzorců Dataverse for Teams, protože vyhodnocení se provádějí bez znalosti místního časového pásma aktuálního uživatele.
    Více informací: Práce se sloupci tabulky vzorců v Dataverse for Teams

Další informace viz Date, Time a DateTime v dokumentaci k datových typům a práce s daty a časy.

Nestálé funkce

Now, Today, UTCNow a UTCToday jsou nestálými funkcemi. Tyto funkce vracejí pro každé vyhodnocení jinou hodnotu.

Když nestálou funkci použijete ve vzorci toku dat, vrátí jinou hodnotu pouze v případě, že se tento vzorec znovu vyhodnotí. Pokud se ve vzorci nic jiného nemění, bude mít funkce po celou dobu spuštění aplikace stejnou hodnotu.

Například ovládací prvek Label se vzorce Label1.Text = Now() se nezmění, když je aplikace aktivní. Nová hodnota se objeví, pouze pokud aplikaci zavřete a znovu ji otevřete.

Pokud je funkce součástí vzorce, ve kterém se změnilo ještě něco jiného, vyhodnotí se znovu. Například když náš vzorec změníme tak, aby obsahoval ovládací prvek Slider se vzorcem Label1.Text = DateAdd( Now(); Slider1.Value; Minutes ), aktuální čas se načte pokaždé, když se hodnota Posuvníku změní, a vlastnost Text ovládacího prvku Label se znovu vyhodnotí.

Když se nestálé funkce použijí ve vzorci chování, vyhodnotí se pokaždé zároveň se vzorcem chování. Níže najdete příklad.

Syntaxe

Použití místního času uživatele

Now()

Today()

IsToday( DateTime )

  • DateTime – povinné. Hodnota data a času, která se má otestovat.

Používání koordinovaného světového času (UTC)

UTCNow()

UTCToday()

IsUTCToday( TimeZoneIndependentTime )

  • TimeZoneIndependentDateTime - Požadované. Hodnota data/času nezávislá na časovém pásmu, která se má testovat.

Příklady

Pro příklady v této části je aktuální čas 20:5811. července 2021 v tichomořském časovém pásmu (UTC-8) a jazyk je en-us.

Vzorec Popis Výsledek
Text( Now(), "mm/dd/yyyy hh:mm:ss" ) Načte aktuální datum a čas v časovém pásmu uživatele a zobrazí výsledek jako řetězec. "07/11/2021 20:58:00"
Text( Today(), "mm/dd/yyyy hh:mm:ss" ) Načte aktuální datum a zobrazí ho jako řetězec, přičemž jako čas se nechá půlnoc. "07/12/2021 00:00:00"
IsToday( Now() ) Otestuje, jestli aktuální datum a čas je mezi půlnocí na dnešek a půlnocí na zítra. true
IsToday( Today() ) Otestuje, jestli aktuální datum je mezi půlnocí na dnešek a půlnocí na zítra. true
Text( DateAdd( Now(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Načte aktuální datum a čas, připočte 12 dnů a zobrazí výsledek jako řetězec. "07/23/2021 20:58:00"
Text( DateAdd( Today(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Načte aktuální datum, připočte 12 dnů a zobrazí výsledek jako řetězec. "07/23/2021 00:00:00"
IsToday( DateAdd( Now(), 12 ) ) Otestuje, jestli aktuální datum a čas plus 12 dnů je mezi půlnocí na dnešek a půlnocí na zítra. false
IsToday( DateAdd( Today(), 12 ) ) Otestuje, jestli aktuální datum plus 12 dnů je mezi půlnocí na dnešek a půlnocí na zítra. nepravda
Hour( UTCNow() ) Načte aktuální datum a čas v UTC a extrahuje pouze hodinu, což je 8 hodin před místním časem. 4
Day( UTCToday() ) Načte pouze aktuální datum v UTC a extrahuje den, což je 1 den před místním časem. 12
IsUTCToday( UTCNow() ) Otestuje, jestli aktuální datum a čas je mezi půlnocí na dnešek a půlnocí na zítra, vše ve standardu UTC. true
IsUTCToday( UTCToday() ) Otestuje, jestli aktuální datum je mezi půlnocí na dnešek a půlnocí na zítra, vše ve standardu UTC. true

Zobrazení hodin, které se aktualizují v reálném čase

  1. Přidejte ovládací prvek Timer, nastavte jeho vlastnost Duration na hodnotu 1000 a vlastnost Repeat nastavte na true.

    Timer poběží jednu sekundu, automaticky se spustí znovu a bude tímto stylem pokračovat.

  2. Vlastnost OnTimerEnd tohoto ovládacího prvku nastavte na následující vzorec:

    Set( CurrentTime, Now() )

    Vždy, když časovač začne znovu (každou sekundu), nastaví vzorec globální proměnnou CurrentTime na aktuální hodnotu funkce Now.

    Obrazovka obsahující ovládací prvek Timer se vzorcem OnTimerEnd = Set(CurrentTime; Now()).

  3. Přidejte ovládací prvek Label a jeho vlastnost Text nastavte na tento vzorec:

    Text( CurrentTime; LongTime24 )

    Použijte funkci Text k naformátování data a času podle svých představ nebo tuto vlastnost nastavte jen na CurrentTime, aby zobrazovala pouze hodiny a minuty a nezobrazovala sekundy.

    Obrazovka obsahující ovládací prvek Label s vlastností Text nastavenou na Text( CurrentTime; LongTime24).

  4. Zobrazte si náhled aplikace stisknutím klávesy F5 a potom kliknutím nebo klepnutím na časovač ho spusťte.

    Popisek bude průběžně zobrazovat aktuální čas i se sekundami.

    Čtyři obrazovky zobrazující čtyři časové hodnoty (13:50:22, 13:50:45, 13:51:03 a 13:51:25).

  5. Nastavte vlastnost časovače AutoStart na true a jeho vlastnost Visible na false.

    Timer je neviditelný a spustí se automaticky.

  6. Nastavte vlastnost obrazovky OnStart tak, aby proměnná CurrentTime měla platnou hodnotu, jako v tomto příkladu:

    Set(CurrentTime, Now())

    Popisek se zobrazí ihned po spuštění aplikace (než na časovači uběhne celé sekunda).