Funkcje Now, Today, IsToday, UTCNow, UTCToday i IsUTCToday
Dotyczy: Aplikacje kanwy Przepływy pulpitu Kolumny formuły Dataverse Aplikacje oparte na modelu Power Pages 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
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.
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.
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.
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.
Ustaw właściwość AutoStart czasomierza na true i właściwość Visible na false.
Czasomierz jest niewidoczny i uruchamia się automatycznie.
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ę).