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
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.
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.
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.
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.
Nastavte vlastnost časovače AutoStart na true a jeho vlastnost Visible na false.
Timer je neviditelný a spustí se automaticky.
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).