Sdílet prostřednictvím


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

Platí pro: aplikace na plátně toky na počítači Dataverse sloupce vzorců aplikace řízené modelem Power Pages 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:

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

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. Dnešek má stejnou hodnotu po celý den, od dnešní půlnoci do zítřejší půlnoci.

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).

Nyní funkce, Today a IsToday pracují s místním časem aktuálního uživatel.

Funkce UTCNow, UTCToday a IsUTCToday jsou stejné jako jejich funkce mimo UTC protějšky, 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 v Microsoft Dataverse for Teams sloupce vzorce a pouze pro časově nezávislá pole a hodnoty.
  • Nyní, Dnes a IsToday nejsou dostupné v Dataverse for Teams sloupce vzorce, protože vyhodnocení se provádí 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

Nyní, Dnes, UTCNow a UTCToday jsou těkavé funkce. 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

Nyní()

Dnes()

Je dnes( Datum a čas )

  • 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 – povinné. 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:58 11. č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( Dnes(), "mm/dd/rrrr 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"
Je dnes(nyní()) Otestuje, jestli aktuální datum a čas je mezi půlnocí na dnešek a půlnocí na zítra. věrný
Je dnes(dnes()) Otestuje, jestli aktuální datum je mezi půlnocí na dnešek a půlnocí na zítra. věrný
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. falešný
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. falešný
Hodina (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
Den (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. věrný
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. věrný

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).