Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

PHP для начинающих Работа с датой и временем в PHP 5.2+


Компания ИнфоСтарз





Если у Вас есть сайт...

Бесплатный сервис на сайт
Вы можете абсолютно бесплатно разместить форму для загрузки файлов на бесплатный сервер на своем сайте.

Готовые ленты новостей
Вы можете разместить у себя на сайте информеры с последними новостями на самые разные темы.

Партнерская программа Wizards World
Размести ссылку на своем сайте и получай проценты от платежей привлеченных пользователей.


Работа с датой и временем в PHP 5.2+

Рано или поздно при разработке проекта встает вопрос о работе с датой и временем.

Начиная с версии 5.2 ядро PHP предоставляет для этой работы классы DateTime и DateTimeZone.

Существующие в PHP 4 и 5 функции для работы с датой и временем:

  • checkdate - Проверяет правильность даты по грегорианскому календарю
  • date и gmdate - Форматирует системную дату/время (gmdate форматирует по Гринвичу)
  • getdate - Возвращает информацию о дате/времени
  • gettimeofday - Возвращает текущее время
  • localtime - Возвращает системное время
  • mktime(gmmktime) - Возвращает метку времени для заданной даты (по Гринвичу)
  • strftime(gmstrftime) - Форматирует дату/время с учетом текущей локали (по Гринвичу)
  • strtotime - Преобразует текстовое представление даты на английском языке в метку времени Unix.

Улучшения работы с датами, начиная с PHP 5.1.

  • Использование 64-битного типа для хранения даты. Теперь граница интервала использования данного типа 4 Декабря 292277026596 год (ранее таймстамп представлялся в виде 32-битного целого, из-за чего ограничение его использования находилось между 1902 и 2038 годами).
  • Функция strtorime была переписана, за счет чего сократились издержки выполнения и количество ошибок в ней.
  • Полная поддержка временных зон, перевода часов и модификаторов дат, чего не было ранее.
  • Новый формат модификаторов временных зон.
  • Более продвинутые функции для работы с датами.

Форматы представления даты и времени, начиная с PHP 5.1

  • Американский формат: 9/11;4:08 pm;12/22/78; 8:51:00 am
  • Комбинированный формат: Sat, 24 Apr 2004 21:48:40 +0200; 2001-11-29T13:20:01.123-05:00
  • Описательный формат: tomorrow; four months ago; last saturday; +20 days 2 hours
  • Текстовый формат: December 22. 1978; 22-december-1978
  • Все ISO 8601 форматы: 1978/12/22; 13:03:12.45678; 13:03:12.45678 +0100; 15:57-8; 1978-12-22; 15:57:41 pdt; 13:03:12.45678 CEST; 231431 CEST; 70-4-25; 13:03 CEST; 04:05 -0930; 23:41F
  • Форматы баз данных: 1999-Jan-08; 1999.238

Временные зоны, начиная с PHP 5.1

  • Встроенная база на 551 временную зону
  • Нет зависимости от аббревиатуры временной зоны
  • Названия временных зон имеют формат - Continent/Location или Continent/Location/Sublocation. Зоны разделены на 10 больших групп: Африка, Америка, Антарктика, Арктика, Азия,Европа,Индия,Тихий океан. Каждая временная зона идентифицируется городом с наибольшим населением на данной территории. Существует также группа Другие, состоящая из вышедших из употребления названий и служащая для обеспечения обратной совместимости.

Изменение информации по временным зонам.

  • Обновления информации по временным зонам происходят около 20 раз в год
  • Большинство обновлений происходят неожиданно
  • Чтобы не потерять актуальность, релизы php должны быть достаточно часты
  • Расширение pecl, которое исправляет данные недостатки, называется timezonedb (pecl install timezonedb)


Вам понравилась рассылка?
(голосование возможно только из письма рассылки)
  • понравилась
  • не понравилась
  • средне



  • В избранное