Now、Today、IsToday、UTCNow、UTCToday 和 IsUTCToday 函式
適用於: 畫布應用程式 桌面流程 Dataverse 公式欄 模型導向應用程式 Power Pages Power Platform CLI
傳回目前的日期和時間,並測試日期/時間值是否為今天。
注意
PAC CLI pac power-fx 命令不支援 UTCNow、UTCToday,和 IsUTCToday 函式。
Description
Now 函式會傳回目前的日期和時間來作為日期/時間值。
Today 函式會傳回目前的日期來作為日期/時間值。 時間部分為午夜。 從今天午夜到明天午夜一整天的 Today 值都相同。
IsToday 函式會測試日期/時間值是否在今天午夜和明天午夜之間。 此函式會傳回布林 (true 或 false) 值。
Now、Today 和 IsToday 函式都是使用目前使用者的當地時間。
UTCNow、UTCToday 和 IsUTCToday 函式與其非 UTC 對應部分相同,但使用的值與時區無關,並使用國際標準時間 (UTC)。
Note
- UTCNow、UTCToday 和 IsUTCToday 只能在 Microsoft Dataverse for Teams 公式欄中使用,而且只適用於時間獨立的欄位與值。
-
Now、Today 和 IsToday 無法在 Dataverse for Teams 公式欄中使用,因為評估是在不知道目前使用者本地時區的情況下完成的。
其他資訊:在 Dataverse for Teams 中使用公式資料表資料行
如需其他資訊,請參閱資料類型文件中的 Date、Time 和 DateTime及使用日期和時間。
動態函式
Now、Today、UTCNow 和 UTCToday 是動態函式。 這些函式會針對每個評估傳回不同的值。
在資料流公式中使用時,動態函式只會傳回重新評估出現公式時傳回不同的值。 如果公式中沒有其他變更,會在您應用程式執行過程中具有相同的值。
例如,具有 Label1.Text = Now() 的標籤控制項在應用程式有效時不會變更。 只有關閉並重新開啟應用程式才會產生新的值。
如果函式在其他項目已變更的公式部分,將會重新評估。 比方說,如果我們變更範例,形成含有 Label1.Text = DateAdd( Now(), Slider1.Value, Minutes) 的 Slider 控制項,則每次 Slider 控制項值變更時都會擷取目前的時間,並重新評估標籤的文字屬性。
當用於 行為公式 時,動態函式會在每次評估行為公式時評估。 如需範例,請參閱下方內容。
語法
使用使用者的當地時間
Now()
Today()
IsToday( DateTime )
- DateTime - 必要項目。 要測試的日期/時間值。
使用國際標準時間 (UTC)
UTCNow()
UTCToday()
IsUTCToday( TimeZoneIndependentTime )
- TimeZoneIndependentDateTime - 必要項目。 要測試的時區獨立日期/時間值。
範例
對於本節中的範例,目前時間是 2021 年 7 月 11 日下午 8:58 太平洋時區 (UTC-8),語言是en-us 。
公式 | 描述 | 結果 |
---|---|---|
Text( Now(), "mm/dd/yyyy hh:mm:ss" ) | 擷取使用者時區的目前日期和時間,並將它顯示為字串。 | "07/11/2021 20:58:00" |
Text( Today(), "mm/dd/yyyy hh:mm:ss" ) | 只擷取目前的日期,讓時間部分是午夜,並將它顯示為字串。 | "07/12/2021 00:00:00" |
IsToday( Now() ) | 測試目前的日期和時間是否在今天午夜和明天午夜之間。 | true |
IsToday( Today() ) | 測試目前的日期是否在今天午夜和明天午夜之間。 | true |
Text( DateAdd( Now(), 12 ), "mm/dd/yyyy hh:mm:ss" ) | 檢索目前的日期和時間,對結果加上 12 天,並將它顯示為字串。 | "07/23/2021 20:58:00" |
Text( DateAdd( Today(), 12 ), "mm/dd/yyyy hh:mm:ss" ) | 擷取目前的日期,將結果加上 12 天,並將它顯示為字串。 | "07/23/2021 00:00:00" |
IsToday( DateAdd( Now(), 12 ) ) | 測試目前的日期和時間加上 12 天,是否在今天午夜和明天午夜之間。 | false |
IsToday( DateAdd( Today(), 12 ) ) | 測試目前的日期加上 12 天,是否在今天午夜和明天午夜之間。 | False |
Hour( UTCNow() ) | 擷取 UTC 的目前日期和時間並只擷取小時,即比本地時間早 8 小時。 | 4 |
Day( UTCToday() ) | 擷取 UTC 的目前只有日期並只擷取日,即比本地時間早 1 天。 | 12 |
IsUTCToday( UTCNow() ) | 測試目前的日期和時間是否在今天午夜和明天午夜之間,均採用 UTC 時間。 | True |
IsUTCToday( UTCToday() ) | 測試目前的日期是否在今天午夜和明天午夜之間,均採用 UTC 時間。 | True |
顯示即時更新的時鐘
新增 Timer 控制項,將其 Duration 屬性設定為 1000,並將其 Repeat 屬性設定為 True。
計時器將執行一秒鐘後自動重新開始,並繼續該模式。
將控制項的 OnTimerEnd 屬性設定為下列公式:
Set( CurrentTime, Now() )
每當計時器重新開始時 (經過每一秒後),此公式會將 CurrentTime 全域變數設定為 Now 函式的目前值。
新增 Label 控制項,並將其Text屬性設定為下列公式:
Text( CurrentTime, LongTime24 )
使用 Text 函式依照您想要的方式格式化日期和時間,或僅將此屬性設定為 CurrentTime 以顯示小時和分鐘,但不顯示秒。
按 F5 鍵預覽應用程式,然後點擊或點選計時器啟動它。
標籤會持續顯示目前的時間,最詳細到秒。
將計時器的 AutoStart 屬性設定為 true,並將其 Visible 屬性設定為 false。
無法看見計時器,且計時器會自動啟動。
設定畫面的 OnStart 屬性,以便 CurrentTime 變數內含有效值,如此範例所示:
Set(CurrentTime, Now())
只要應用程式一啟動便會顯示標籤 (在計時器執行完整的一秒鐘之前)。