Эта глава посвящена описанию временнък функций. Большинство функций даты и времени PHP встречаются во всех языках программирования. Они позволяют получить текущую дату в нескольких форматах. Календарные функции обрабатывают даты в различных календарях, включая устаревшие и неизвестные календари.
14.1. Время и дата
Все временные функции начинают свой отсчет с начала эпохи Unix, или с 1 января 1970 года. Все даты выражаются в секундах, начиная с этого дня. Это упрощает обращение к датам с помощью целых чисел. Когда функция оперирует секундами, отсчитанными с этого дня, они обрабатываются как временные отметки.
ОС Windows распознает временные отметки с 0 и до максимального 32-битового целого числа, что соответствует 19 января 2038 года. Unix позволяет работать также с отрицательными значениями временных отметок, что соответствует отрезку времени до 13 декабря 1901 года.
boolean checkdate(integer month, integer day, integer year)
Функция checkdate (листинг 14.1) возвращает значение TRUE, если дата является допустимой, и значение FALSE - в противном случае. Дата считается допустимой, если год лежит в диапазоне 0-32767, месяц - в диапазоне 1-12, а день - в диапазоне допустимых дней в месяце. Эта функция учитывает также наличие високосного года.

j Листинг 14.1. Функция fgetc_
<?php
if(checkdate(2,18,197 0)) {
print("3TO хороший день");

string date(string format, integer timestamp)

Функция date (листинг 14.2) возвращает строку описания даты по аргументу timestamp в соответствии с форматом, заданным аргументом format. Буквы, заданные в аргументе format, замещаются элементами описания даты и времени. Любые символы, не воспринятые как коды, передаются в неизменном виде. Передавать символы можно с указанием предшествующего символа "обратная косая черта". Коды формата дат приведены в табл. 14.1.
Функции даты и времени
Аргумент timestamp является необязательным. При его отсутствии будет использоваться текущее время. Аргумент timestamp интерпретируется для локального времени.

| Листинг 14.2. Функция date_
<?php
//Напечатать что-то наподобие
//04:01 PM Tuesday December 17th, 2002
print(date("h:i A l F dS, Y"));

integer date_sunrise(integer timestamp, integer format,
double latitude, double longitude, double zenith, double offset)
Функция date_sunrise возвращает время восхода солнца по дате, заданной аргументом timestamp. Необязательный аргумент format может иметь значение SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING или SUNFUNCS_RET_DOUBLE. Первое значение возвращает время восхода солнца в секундах, отсчет которого ведется с полуночи. Вторая константа приводит к возвращению времени в виде строки в 24-часовом формате, который устанавливается по умолчанию. При указании третьей константы возвращается временная отметка восхода солнца для этого дня. Эта функция позволяет задавать широту и долготу точки, зенит и разницу во времени относительно Гринвича. Если эти параметры не заданы, PHP по умолчанию берет значения, заданные в файле php.ini. Здесь директивами настройки являются date.default_latitude, date.default_longitude и date.sunset_zenith. Часовой пояс определяется из настроек операционной системы.
integer date_sunset(integer timestamp, integer format,
double latitude, double longitude, double zenith, double offset)
Функция date_sunset возвращает время захода солнца по дате, заданной аргументом timestamp. Аргументы этой функции совпадают с аргументами функции date_sunrise.