Перейти к основному содержимому
Версия: 2.0 (WIP)

Функции даты и времени

$now()

Сигнатура: $now([picture [, timezone]])

Создаёт временную метку UTC в формате, совместимом с ISO 8601, и возвращает её строкой. Все вызовы $now() при одном вычислении выражения вернут одну и ту же метку времени.

Если переданы необязательные параметры picture и timezone, текущая метка форматируется так, как описано для $fromMillis().

Пример: $now() => "2017-05-15T15:12:59.152Z"

$millis()

Сигнатура: $millis()

Возвращает числом количество миллисекунд от Unix-эпохи (1 января 1970 года, UTC). Все вызовы $millis() при одном вычислении выражения вернут одно и то же значение.

Пример: $millis() => 1502700297574

$fromMillis()

Сигнатура: $fromMillis(number [, picture [, timezone]])

Преобразует number — количество миллисекунд от Unix-эпохи (1 января 1970 года, UTC) — в строковое представление временной метки, формат которой задаёт строка picture.

Если picture не указан, временная метка форматируется по ISO 8601. Если строка picture задана, форматирование соответствует двухаргументной версии XPath/XQuery-функции fn:format-dateTime; строка имеет тот же синтаксис.

Если задана строка timezone, метка форматируется в этой временной зоне. Строка должна иметь вид ±HHMM, где ± — знак плюс или минус, а HHMM — смещение от UTC в часах и минутах. Положительное смещение используется для зон к востоку от UTC, отрицательное — к западу.

Примеры:

  • $fromMillis(1510067557121) => "2017-11-07T15:12:37.121Z"
  • $fromMillis(1510067557121, '[M01]/[D01]/[Y0001] [h#1]:[m01][P]') => "11/07/2017 3:12pm"
  • $fromMillis(1510067557121, '[H01]:[m01]:[s01] [z]', '-0500') => "10:12:37 GMT-05:00"

$toMillis()

Сигнатура: $toMillis(timestamp [, picture])

Преобразует строку timestamp в количество миллисекунд от Unix-эпохи (1 января 1970 года, UTC).

Если picture не задан, предполагается ISO 8601; при неверном формате строки возникает ошибка. Если picture задан, предполагается формат с тем же синтаксисом, что у XPath/XQuery-функции fn:format-dateTime.

Пример: $toMillis("2017-11-07T15:07:54.972Z") => 1510067274972