Тепер, Сьогодні, IsToday, UTCNow, UTCToday, IsUTCToday функції
Застосовується до: програм Canvas Стовпців Dataverse формул потоків на робочому столі Програм Power Pages Power Platform CLI на основі моделі
Повернення поточних дати та часу, а також перевірка відповідності значення дати й часу сьогоднішньому дню.
Нотатка
Команди PAC CLI pac power-fx не підтримують функції UTCNow, UTCToday та IsUTCToday .
Опис
Функція Now повертає поточні дату та час як значення дати й часу.
Функція Today повертає поточну дату як значення дати й часу. Частина, що відноситься до часу, відображається як північ. Функція Today має однакове значення протягом усього дня: від півночі сьогоднішнього дня до півночі завтрашнього дня.
Функція IsToday перевіряє, чи знаходиться значення дати й часу між північчю сьогоднішнього дня та північчю завтрашнього дня. Ця функція повертає логічне значення (true або false).
Функції Now, Today і IsToday працюють із місцевим часом поточного користувача.
Функції UTCNow, UTCToday та IsUTCToday такі ж, як і їх аналоги, що не належать до UTC, але працюють зі значеннями, незалежними від часових поясів, і використовують всесвітній координований час (UTC).
Нотатка
- UTCNow, UTCToday і IsUTCToday доступні лише в стовпцях формул Microsoft Dataverse for Teams і лише для полів і значень, незалежних від часового поясу.
-
Функції Now, Today та IsToday недоступні в стовпцях формул Dataverse for Teams, оскільки обчислення виконуються без відомостей про місцевий часовий пояс поточного користувача.
Додаткові відомості: Робота зі стовпцями таблиць формул у Dataverse for Teams
Додаткові відомості див. в статтях Дата, час і дата/час в документації про типи даних і Робота з датами й часом.
Змінні функції
Now, Today, UTCNow і UTCToday є змінними функціями. Ці функції повертають різне значення для кожного обчислення.
Якщо у формулі використовується потік даних, змінна функція повертатиме інше значення тільки в разі повторного обчислення формули, в якій вона вказана. Якщо у формулі немає інших змін, то вона матиме однакове значення протягом усього виконання програми.
Наприклад, елемент керування з формулою Label1.Text = Now() не зміниться в активній програмі. Нове значення відобразиться лише після закриття та повторного відкриття програми.
Якщо функція є частиною формули, в якій ще щось змінилось, її значення буде обчислено повторно. Наприклад, якщо змінити наш приклад для включення елемента керування «Повзунок» із формулою Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ), поточний час отримуватиметься після кожної зміни значення елемента керування «Повзунок» та повторного обчислення його властивості «Text».
У разі використання у формулі поведінки змінні функції обчислюватимуться повторно після кожного обчислення формули поведінки. Цей приклад описано нижче.
Синтаксис
Використання місцевого часу користувача
Now()
Today()
IsToday( DateTime )
- DateTime – обов’язковий аргумент. Значення дати й часу для перевірки.
Використання всесвітнього координованого часу (UTC)
UTCNow()
UTCToday()
IsUTCToday( TimeZoneIndependentTime )
- TimeZoneIndependentDateTime – обов’язковий аргумент. Незалежне значення дати й часу часового поясу для тестування.
Приклади
Для прикладів у цьому розділі поточний час 8:58 PM 11 липня 2021 р., тихоокеанський часовий пояс (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 днів, між північчю сьогоднішнього дня та північчю завтрашнього дня. | хибність |
Hour( UTCNow() ) | Отримує поточну дату та час у UTC, і видобуває лише годину, що випереджає місцевий час на 8 годин. | 4 |
Day( UTCToday() ) | Отримує поточну дату лише в UTC і витягує день, який на 1 день випереджає місцевий час. | 12 |
IsUTCToday( UTCNow() ) | Перевіряє, чи знаходяться поточні дата та час між північчю сьогоднішнього дня та північчю завтрашнього дня, усе в UTC. | True |
IsUTCToday( UTCToday() ) | Перевіряє, чи знаходиться поточна дата між північчю сьогоднішнього дня та північчю завтрашнього дня, усе в UTC. | True |
Відображення годинника, що оновлюється в режимі реального часу
Додайте елемент керування Таймер, установіть для його властивості Duration значення 1000, а для властивості Repeat – true.
Таймер пропрацює одну секунду, автоматично перезапуститься і повторюватиме цю поведінку знову і знову.
Настройте властивість OnTimerEnd цього елемента керування відповідно до нижчезазначеної формули.
Set( CurrentTime, Now() )
Під час кожного перезапуску таймера (щосекунди) ця формула встановлюватиме для глобальної змінної CurrentTime поточне значення функції Now.
Додайте елемент керування Підпис і для його властивості Текст укажіть таку формулу:
Text( CurrentTime, LongTime24 )
За допомогою функції Text форматуйте дату та час, або встановіть для цієї властивості тільки значення CurrentTime, щоб відображалися години і хвилини, але не секунди.
Натисніть клавішу F5 для попереднього перегляду програми, а потім запустіть таймер, клацнувши або торкнувшись його.
Підпис постійно відображатиме поточний час із точністю до секунди.
Установіть для властивості AutoStart таймера значення true, а для його властивості Visible – false.
Тепер таймер невидимий і запускається автоматично.
Настройте властивість OnStart екрана так, щоб змінна CurrentTime мала припустиме значення, як у наведеному нижче прикладі.
Set(CurrentTime, Now())
Підпис відображатиметься відразу після запуску програми (перш ніж таймер пропрацює повну секунду).