Споделяне чрез


Сега, днес, IsToday, UTCNow, UTCToday, IsUTCToday функции

Отнася се за: Приложения за платно Колони за формули Dataverse за потоци на работния плот Колони Power Pages Dataverse за формули за приложения, Power Platform управлявани от модел CLI

Връща текущата дата и час и тества дали стойността на дата / час е днес.

Бележка

PAC CLI pac power-fx командите не поддържат функциите UTCNow, UTCToday и IsUTCToday .

Описание

Функцията Now връща текущата дата и час като стойност на дата / час.

Функцията Today връща текущата дата и час като стойност на дата / час. Часовата част е полунощ. Today има една и съща стойност през ден, от полунощ днес до полунощ утре.

Функцията IsToday тества дали стойността на дата / час е между полунощ днес и полунощ утре. Тази функция връща булева стойност (вярно или невярно).

Now, Today и IsToday функциите работят с местното време на текущия потребител.

Функциите UTCNow, UTCToday и IsUTCToday са същите като техните не-UTC колеги, но работят с независими от часовата зона стойности и използват координирано универсално време (UTC).

Бележка

  • 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 ) текущото време се извлича всеки път, когато стойността на контрола на плъзгача се промени и текстовото свойство на етикета се преоцени.

Когато се използва в формула на поведение, нестабилните функции ще бъдат оценявани всеки път, когато се оценява формулата на поведение. Вижте по-долу за а пример.

Синтаксис

Използване на местното време на потребителя

Now()

Today()

IsToday( DateTime )

  • DateTime - Задължително. Стойността на датата / часа за тестване.

Използване на координирано универсално време (UTC)

UTCNow()

UTCToday()

IsUTCToday( TimeZoneIndependentTime )

  • TimeZoneIndependentDateTime - Задължително. Независимата от часовата зона стойност дата/час за тестване.

Примери

За примерите в този раздел текущото време е 20:58 на 11 юли 2021 г. в Тихоокеанска часова зона (UTC-8) и езикът е en-us.

Формула Описание Result
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() ) Тества дали текущата дата и час са между полунощ днес и полунощ утре. вярно
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 дни са между полунощ днес и полунощ утре. false
Hour( UTCNow() ) Извлича текущата дата и час в UTC и извлича само часа, който е с 8 часа пред местното време. 4
Day( UTCToday() ) Извлича текущата дата само в UTC и извлича деня, който е с 1 ден напред от местното време. 12
IsUTCToday(UTCNow()) Проверява дали текущата дата и час са между полунощ днес и полунощ утре, всичко в UTC време. вярно
IsUTCToday( UTCToday() ) Проверява дали текущата дата е между полунощ днес и полунощ утре, всичко в UTC време. вярно

Показване на часовник, който се актуализира в реално време

  1. Добавете Timer контрола, задайте свойството Duration на 1000, и задайте неговото свойство Repeat на вярно.

    Таймерът ще работи за една секунда, автоматично стартира отначало и продължава този шаблон.

  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 свойството на вярно и свойството видим на невярно.

    Таймерът е невидим и се стартира автоматично.

  6. Задайте екрана OnStart свойството, така че на CurrentTime променливата има валидна стойност, както в този пример:

    Set(CurrentTime, Now())

    Етикетът се появява веднага след стартирането на приложението (преди таймерът да работи за цяла секунда).