Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка PHP 2008.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

11.1 Представление времени в формате timestamp

  • int time()

Возвращает время в секундах, прошедшее с полуночи 1 января 1970 года по Гринвичу до настоящего момента. Почти все функции по работе со временем имеют дело именно с таким его представлением (которое называется timestamp).

  • string microtime()

Возвращает строку в формате: "микросекунды секунды", где секунды – то, что возвращается функцией time(), а микросекунды – дробная часть секунд, служащая для более точного измерения промежутков времени.

  • int mktime([int $hour] [,int $minute] [,int $second] [,int $month] [,int $day] [,int $year])

Функция возвращает значение timestamp, соответствующее указанной дате. Все ее параметры необязательны, но пропускать их можно только справа налево. Если какие-то параметры не заданы, на их место подставляются значения, соответствующие текущей дате. Правильность даты, переданной в параметрах, не проверяется. В случае некорректной даты функция формирует соответствующий timestamp.

Пример:

echo date("M-d-Y", mktime(0,0,0,1,1,1998));

// правильная дата

echo date("M-d-Y", mktime(0,0,0,12,32,1997));

// неправильная дата

echo date("M-d-Y", mktime(0,0,0,13,1,1997));

// неправильная дата

В результате выводятся три одинаковых числа.

11.2 Работа с датами, григорианский календарь

  • string date(string $format [,int $timestamp])

Функция возвращает строку, отформатированную в соответствии с параметром $format и сформированную на основе параметра $timestamp (если последний не задан – то на основе текущей даты). Строка формата может содержать обычный текст, перемежаемый одним или несколькими символами форматирования: U – количество секунд, прошедших с полуночи 1 января 1970 года; z – номер дня от начала года; Y – год, 4 цифры; y – год, 2 цифры; F – название месяца, например, January (формат выдачи месяца зависит от текущих настроек локали); m – номер месяца; M – название месяца, трехсимвольная аббревиатура, например, Jan; d – номер дня в месяце, всегда 2 цифры (первая может быть 0); j – номер дня в месяце без предваряющего нуля; w – день недели, 0 соответствует воскресенью, 1 – понедельнику, и т. д.; l – день недели, текстовое полное название, например, Friday; D – день недели, английское трехсимвольное сокращение, например, Fri; a – am или pm; A – AM или PM; h – часы, 12-часовой формат; H – часы, 24-часовой формат; i – минуты; s – секунды; S – английский числовой суффикс (nd, th и т. д.).

Те символы, которые не были распознаны как форматирующие, подставляются в результирующую строку «как есть». Пример:

echo date("l dS of F Y h:i:s A");

echo date("Сегодня d.m.Y");

echo date("Дата файла d.m.Y",filectime("myfile"));

  • int checkdate(int $month, int $day, int $year)

Функция проверяет, существует ли дата, переданная ей в параметрах: вначале ищется месяц, затем – день, и, наконец, – год. Функция проверяет следующее: год должен быть между 1900 и 32 767 включительно; месяц обязан принадлежать диапазону от 1 до 12; число должно быть допустимым для указанного месяца и года (если год високосный).

  • array getdate(int $timestamp)

Возвращает ассоциативный массив, содержащий данные об указанном времени. В массив будут помещены следующие ключи и значения: seconds – секунды; minutes – минуты; hours – часы; mday – число; wday – день недели, число; mon – номер месяца; year – год; yday – номер дня с начала года; weekday – полное название дня недели, например, Friday; month – полное название месяца, например, January.

Григорианский календарь – это тот календарь, который мы постоянно используем в своей жизни. В России он был введен Петром I в 1700 году. Каждой дате соответствует свой Julian Day Count (JDC). JDC – это число дней, прошедших с определенной даты (где-то с 4714-го года до нашей эры). Это нужно например, чтобы вычислить количество дней между двумя датами в формате "дд.мм.гггг". Обе даты переводятся в в JDC и определяется разность получившихся величин.

  • int GregorianToJD(int $month, int $day,

int $year)

Преобразует дату в формат JDC. Допустимые значения года для григорианского календаря – от 4714 года до нашей эры до 9999 года нашей эры.

  • string JDToGregorian(int $julianday)

Преобразует дату в формате JDC в строку месяц/число/год. Чтобы разбить эту строку на составляющие можно воспользоваться функцией explode():

$jd = GregorianToJD(10,11,1970);

echo "$jd<br>\n";

$gregorian = JDToGregorian($jd);

echo "$gregorian<br>\n";

$list=explode($gregorian,"/");

  • mixed JDDayOfWeek(int $julianday, int $mode)

Функция JDDayOfWeek() возвращает день недели, на который приходится указанная JDC-дата. Параметр $mode задает, в каком виде должен быть возвращен результат: 0 – номер дня недели (0 — воскресенье, 1 — понедельник, и т. д.); 1 – английское название дня недели; 2 – сокращение английского названия дня недели.