Funkcje Now, Today, IsToday, UTCNow, UTCToday i IsUTCToday

Dotyczy: Aplikacje oparte na kanwie Przepływy pulpitu Kolumny formuł Dataverse Aplikacje oparte na modelach Power Platform CLI

Zwraca bieżącą datę i godzinę oraz sprawdza, czy wartość daty/godziny przypada dzisiaj.

Uwaga

Polecenia PAC CLI pac power-fx nie obsługują funkcji UTCNow , UTCToday i IsUTCToday.

Popis

Funkcja Now zwraca bieżącą datę i godzinę w postaci wartości daty/godziny.

Funkcja Today zwraca bieżącą datę w postaci wartości daty/godziny. Część godzinowa to północ. Funkcja Today ma taką samą wartość w ciągu dnia, od północy do północy dnia następnego.

Funkcja IsToday sprawdza, czy wartość daty/godziny przypada między północą dnia dzisiejszego a północą dnia jutrzejszego. Ta funkcja zwraca wartość logiczną (true lub false).

Funkcje Now, Today i IsToday działają z czasem lokalnym bieżącego użytkownika.

Funkcje UTCNow, UTCToday i IsUTPToday są takie same jak ich odpowiedniki dla casu lokalnego, ale pracują z wartościami niezależnymi od strefy czasowej i korzystają z uniwersalnego czasu koordynowanego ( UTC).

Uwaga

  • Pola UTCNow, UTCToday i IsUTCToday są dostępne tylko w kolumnach formuł Microsoft Dataverse for Teams i tylko dla pól i wartości niezależnych od czasu.
  • Pola Now, Today i IsToday nie są dostępne w kolumnach formuł Dataverse for Teams, ponieważ oceny są wykonywane bez znajomości lokalnej strefy czasowej bieżącego użytkownika.
    Więcej informacji: Praca z kolumnami tabeli formuł w programie Dataverse for Teams

Zobacz Typy danych Date, Time i DateTime w dokumentacji typów danych oraz Praca z datami i godzinami, aby uzyskać więcej informacji.

Funkcje nietrwałe

Now, Today, UTCNow i UTCToday to funkcje nietrwałe. Te funkcje zwracają inną wartość do każdej oceny.

Funkcja nietrwała używana w formule przepływu danych zwróci inną wartość tylko wtedy, gdy formuła, w której ta funkcja się znajduje, zostanie obliczona ponownie. Jeśli nic innego się nie zmieni, funkcja będzie mieć taką samą wartość podczas wykonywania aplikacji.

Na przykład kontrolka etykiety z tekstem Label1.Text = Now() nie ulegnie zmianie, gdy aplikacja będzie aktywna. Tylko zamknięcie i ponowne otwarcie aplikacji spowoduje zwrócenie nowej wartości.

Funkcja zostanie obliczona ponownie, jeśli jest częścią formuły, w której zmienił się inny element. Jeśli na przykład zmienimy nasz przykład tak, aby uwzględniał kontrolkę suwaka z tekstem Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ), bieżący czas będzie pobierany za każdym razem, gdy wartość kontrolki Slider zmieni się, a właściwość tekstu etykiety będzie ponownie obliczana.

W przypadku użycia w formule zachowania funkcje nietrwałe będą obliczane zawsze, gdy będzie obliczana wartość formuły zachowania. Zobacz przykład poniżej.

Składnia

Używanie lokalnej strefy czasowej użytkownika

Now()

Today()

IsToday( DateTime )

  • DateTime – wymagane. Wartość daty/godziny do sprawdzenia.

Używanie uniwersalnego czasu koordynowanego (UTC)

UTCNow()

UTCToday()

IsUTCToday( TimeZoneIndependentTime )

  • TimeZoneIndependentDateTime — wymagane. Strefa czasowa to wartość niezależnie od daty/czasu, która ma być przetestowana.

Przykłady

Przykładowo w tej sekcji bieżąca godzina to 8:58 PM dnia 11 lipca 2021 standardowego czasu pacyficznego (UTC-8), a językiem jest en-us.

Formuła Opis Wynik
Text( Now(), "mm/dd/yyyy hh:mm:ss" ) Pobiera bieżącą datę i godzinę w strefie czasowej użytkownika, a następnie wyświetla je jako ciąg. „07/11/2021 20:58:00”
Text( Today(), "mm/dd/yyyy hh:mm:ss" ) Pobiera tylko bieżącą datę, pozostawiając fragment z godziną jako odpowiadający północy, i wyświetla wszystko jako ciąg. „07/12/2021 00:00:00”
IsToday( Now() ) Sprawdza, czy bieżąca data i godzina przypadają między północą dnia dzisiejszego a północą dnia jutrzejszego. true
IsToday( Today() ) Sprawdza, czy bieżąca data przypada między północą dnia dzisiejszego a północą dnia jutrzejszego. true
Text( DateAdd( Now(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Pobiera bieżącą datę i godzinę, dodaje do wyniku 12 dni, a następnie wyświetla je jako ciąg. „07/23/2021 20:58:00”
Text( DateAdd( Today(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Pobiera bieżącą datę, dodaje do wyniku 12 dni, a następnie wyświetla wynik jako ciąg. „07/23/2021 00:00:00”
IsToday( DateAdd( Now(), 12 ) ) Sprawdza, czy bieżąca data i godzina, plus 12 dni, przypadają między północą dnia dzisiejszego a północą dnia jutrzejszego. false
IsToday( DateAdd( Today(), 12 ) ) Sprawdza, czy bieżąca data, plus 12 dni, przypada między północą dnia dzisiejszego a północą dnia jutrzejszego. fałsz
Hour( UTCNow() ) Pobiera bieżącą datę i godzinę w czasie UTC oraz wyodrębnia tylko godzinę, czyli 8 godzin przed godziną lokalną. 100
Day( UTCToday() ) Pobiera bieżącą datę tylko w UTC i wyodrębnia dzień, który jest o 1 dzień do przodu przed czasem lokalnym. 12
IsUTCToday( UTCNow() ) Sprawdza, czy bieżąca data i godzina przypadają między północą dnia dzisiejszego a północą dnia jutrzejszego, wszystko w czasie UTC. prawda
IsUTCToday( UTCToday() ) Sprawdza, czy bieżąca data przypada między północą dnia dzisiejszego a północą dnia jutrzejszego, wszystko w czasie UTC. prawda

Wyświetlanie zegara aktualizowanego w czasie rzeczywistym

  1. Dodaj kontrolkę Timer, ustaw jej właściwość Duration na 1000, a następnie ustaw właściwość Repeat na prawda.

    Czasomierz będzie działać przez jedną sekundę, automatycznie rozpocznie pracę od początku, a następnie będzie kontynuować zgodnie z tym wzorcem.

  2. Ustaw właściwość OnTimerEnd kontrolki na następującą formułę:

    Set( CurrentTime, Now() )

    Za każdym razem, gdy czasomierz rozpocznie działanie od początku (po każdej sekundzie), ta formuła zostanie ustawiona na zmienną globalną CurrentTime funkcji Now.

    Ekran przedstawiający kontrolkę czasomierza z formułą OnTimerEnd = Set (CurrentTime, Now()).

  3. Dodaj kontrolkę Label i ustaw jej właściwość Text na następującą formułę:

    Text( CurrentTime, LongTime24 )

    Funkcja Text służy do formatowania daty i godziny w dowolny sposób lub ustawiania tej właściwości na wartość CurrentTime w celu pokazania godzin i minut, ale nie sekund.

    Ekran przedstawiający kontrolkę etykiety z właściwością Text ustawioną na Text( CurrentTime, LongTime24).

  4. Wyświetl podgląd aplikacji, naciskając klawisz F5, a następnie uruchom czasomierz przez kliknięcie lub dotknięcie.

    Etykieta stale pokazuje bieżącą godzinę, łącznie z sekundami.

    Cztery ekrany przedstawiające cztery wartości czasu (13: 50:22, 13:50:45, 13:51:03 i 13:51:25).

  5. Ustaw właściwość AutoStart czasomierza na true i właściwość Visible na false.

    Czasomierz jest niewidoczny i uruchamia się automatycznie.

  6. Ustaw właściwość OnStart ekranu tak, aby zmienna CurrentTime miała prawidłową wartość, tak jak w poniższym przykładzie:

    Set(CurrentTime, Now())

    Etykieta pojawia się zaraz po uruchomieniu aplikacji (zanim czasomierz będzie działać przez pełną sekundę).