Класс 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 форматом дат.