Класс date

Предназначен для работы с датами и временем.

Кратке описание

Возможные варианты использования — календари, всевозможные проверки, основывающиеся на датах, и т. п.

Диапазон возможных значений:

  • от 01.01.1970 до 01.01.2038 года;
  • от 00.00.0000 до 31.12.9999 года. [3.4.4]

Не нужно забывать, что в нашем календарном времени есть разрывы и нахлесты: во многих странах принято так называемое летнее время, когда весной часы переводят вперед, а осенью назад. Скажем, в Москве не было времени «02:00, 31 марта 2002», а время «02:00, 27 октября 2002» было дважды.

Числовое значение объекта класса date равно числу суток с EPOCH (01.01.1970 00:00:00, UTC) до даты, заданной в объекте. Этим значением полезно пользоваться для вычисления относительной даты, например:

Пример

Проверка обновлен ли файл позже чем неделю назад:

^if($last_update > $now-7){
   новый
}{
   старый
}

Число суток может быть дробным, скажем полтора дня = 1.5.

Обычно класс оперирует локальными датой и временем, однако можно узнать значение хранимой им даты/времени в произвольном часовом поясе, см. ^date.roll[TZ;…].

Для общения между компьютерами, работающими в разных часовых поясах, удобно обмениваться значениями даты/времени, не зависящими от пояса, — здесь очень удобен формат UNIX, представляющий собой число секунд, прошедших с EPOCH.

Форматы Unix и ISO 8601 можно использовать в JavaScript и ряде других языков сценариев, работающих в браузере.

Parser полностью поддерживает работу с UNIX-форматом дат.