Поділитися через


Зараз, Сьогодні, IsToday, UTCNow, UTCToday, IsUTCToday

Застосовується до: програм Canvas Стовпців Dataverse формул потоків на робочому столі Командного рядка програм Power Pages Power Platform на основі моделі

Повернення поточних дати та часу, а також перевірка відповідності значення дати й часу сьогоднішньому дню.

Нотатка

Команди PAC CLI pac power-fx не підтримують функції UTCNow, UTCToday та IsUTCToday .

Опис

Функція Now повертає поточні дату та час як значення дати й часу.

Функція 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».

У разі використання у формулі поведінки змінні функції обчислюватимуться повторно після кожного обчислення формули поведінки. Цей приклад описано нижче.

Синтаксис

Використання місцевого часу користувача

Зараз()

Сьогодні()

IsToday( DateTime )

  • DateTime - обов’язковий. Значення дати й часу для перевірки.

Використання всесвітнього координованого часу (UTC)

UTCNow()

UTCToday()

IsUTCToday( TimeZoneIndependentTime )

  • TimeZoneIndependentDateTime - обов’язковий. Незалежне значення дати й часу часового поясу для тестування.

Приклади

Для прикладів у цьому розділі поточний час 8:58 PM 11 липня 2021 р., тихоокеанський часовий пояс (UTC-8), мова –en-us.

Формула Опис Результат
Text( Now(), "мм/дд/рррррр гг:хх:сс" ) Отримує поточні дату та час у часовому поясі користувача й відображає його як рядок. "07/11/2021 20:58:00"
Text( Today(), "мм/дд/рррр гг:хх:сс" ) Отримує лише поточну дату (указуючи часову частину як північ) і відображає її як рядок. "07/12/2021 00:00:00"
IsToday( Now() ) Перевіряє, чи знаходяться поточні дата та час між північчю сьогоднішнього дня та північчю завтрашнього дня. Справжній
IsToday( Today() ) Перевіряє, чи знаходиться поточна дата між північчю сьогоднішнього дня та північчю завтрашнього дня. Справжній
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 днів, між північчю сьогоднішнього дня та північчю завтрашнього дня. Брехня
IsToday( DateAdd( Today(), 12 ) ) Перевіряє, чи знаходиться поточна дата, плюс 12 днів, між північчю сьогоднішнього дня та північчю завтрашнього дня. Брехня
Година( UTCNow() ) Отримує поточну дату та час у UTC, і видобуває лише годину, що випереджає місцевий час на 8 годин. 4
День( UTCToday() ) Отримує поточну дату лише в UTC і витягує день, який на 1 день випереджає місцевий час. 12
IsUTCToday( UTCNow() ) Перевіряє, чи знаходяться поточні дата та час між північчю сьогоднішнього дня та північчю завтрашнього дня, усе в UTC. Справжній
IsUTCToday( UTCToday() ) Перевіряє, чи знаходиться поточна дата між північчю сьогоднішнього дня та північчю завтрашнього дня, усе в UTC. Справжній

Відображення годинника, що оновлюється в режимі реального часу

  1. Додайте елемент керування Таймер, установіть для його властивості Duration значення 1000, а для властивості Repeat – true.

    Таймер пропрацює одну секунду, автоматично перезапуститься і повторюватиме цю поведінку знову і знову.

  2. Настройте властивість OnTimerEnd цього елемента керування відповідно до нижчезазначеної формули.

    set( CurrentTime, Now() )

    Під час кожного перезапуску таймера (щосекунди) ця формула встановлюватиме для глобальної змінної CurrentTime поточне значення функції Now.

    Екран, на якому зображено елемент керування «Таймер» із формулою OnTimerEnd = Set(CurrentTime, Now()).

  3. Додайте елемент керування Підпис і для його властивості Текст укажіть таку формулу:

    Text( CurrentTime, LongTime24 )

    За допомогою функції Text форматуйте дату та час, або встановіть для цієї властивості тільки значення CurrentTime, щоб відображалися години і хвилини, але не секунди.

    Екран, на якому зображено елемент керування «Підпис» з указаною для властивості «Text» формулою Text( CurrentTime, LongTime24).

  4. Натисніть клавішу F5 для попереднього перегляду програми, а потім запустіть таймер, клацнувши або торкнувшись його.

    Підпис постійно відображатиме поточний час із точністю до секунди.

    Чотири екрани, на яких зображено чотири значення часу (13:50:22, 13:50:45, 13:51:03 і 13:51:25).

  5. Установіть для властивості AutoStart таймера значення true, а для його властивості Visible – false.

    Тепер таймер невидимий і запускається автоматично.

  6. Настройте властивість OnStart екрана так, щоб змінна CurrentTime мала припустиме значення, як у наведеному нижче прикладі.

    Set(CurrentTime, Now())

    Підпис відображатиметься відразу після запуску програми (перш ніж таймер пропрацює повну секунду).