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


Тепер, Сьогодні, IsToday, UTCНow, UTCToday, IsUTCToday функції

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

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

Нотатка

Команди 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 PM11 липня 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

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

  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())

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