Дата и Время
- Введение
- Установка и настройка
- Предопределенные константы
- DateTime — Класс DateTime
- DateTime::add — Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
- DateTime::__construct — Конструктор класса DateTime
- DateTime::createFromFormat — Создает и возвращает экземпляр класса DateTime, соответствующий заданному формату
- DateTime::getLastErrors — Возвращает предупреждения и ошибки
- DateTime::modify — Изменение временной метки
- DateTime::__set_state — Обработчик __set_state
- DateTime::setDate — Установка даты
- DateTime::setISODate — Установка ISO даты
- DateTime::setTime — Установка времени
- DateTime::setTimestamp — Устанавливает дату и время, основываясь на метке времени Unix
- DateTime::setTimezone — Установка временной зоны для объекта класса DateTime
- DateTime::sub — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
- DateTimeImmutable — Класс DateTimeImmutable
- DateTimeImmutable::add — Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд.
- DateTimeImmutable::__construct — Возвращает новый объект DateTimeImmutable
- DateTimeImmutable::createFromFormat — Возвращает новый объект DateTimeImmutable, отформатированный согласно переданному формату
- DateTimeImmutable::createFromMutable — Returns new DateTimeImmutable object encapsulating the given DateTime object
- DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки
- DateTimeImmutable::modify — Создает новый объект с измененной временной меткой
- DateTimeImmutable::__set_state — Обработчик __set_state
- DateTimeImmutable::setDate — Устанавливает дату
- DateTimeImmutable::setISODate — Устанавливает дату в формате ISO
- DateTimeImmutable::setTime — Устанавливает время
- DateTimeImmutable::setTimestamp — Устанавливает дату и время по переданной временной метке Unix
- DateTimeImmutable::setTimezone — Устанавливает временную зону
- DateTimeImmutable::sub — Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд
- DateTimeInterface — Интерфейс DateTimeInterface
- DateTime::diff — Возвращает разницу между двумя DateTime объектами
- DateTime::format — Возвращает дату, отформатированную согласно переданному формату
- DateTime::getOffset — Возвращает смещение часовой зоны
- DateTime::getTimestamp — Возвращает временную метку Unix
- DateTime::getTimezone — Возвращает часовую зону относительно текущему значению DateTime
- DateTime::__wakeup — Обработчик __wakeup
- DateTimeZone — Класс DateTimeZone
- DateTimeZone::__construct — Создает новый объект DateTimeZone
- DateTimeZone::getLocation — Возвращает информацию о местоположении для временной зоны
- DateTimeZone::getName — Возвращает имя временной зоны
- DateTimeZone::getOffset — Возвращает смещение временной зоны от GMT
- DateTimeZone::getTransitions — Возвращает все переходы для временной зоны
- DateTimeZone::listAbbreviations — Возвращает ассоциативный массив содержащий флаг перехода на летнее время, смещение и имя временной зоны
- DateTimeZone::listIdentifiers — Возвращает численно индексированный массив со всеми идентификаторами временных зон
- DateInterval — Класс DateInterval
- DateInterval::__construct — Создает новый объект DateInterval
- DateInterval::createFromDateString — Создает объект класса DateInterval, используя данные из переданной строки
- DateInterval::format — Форматирует интервал
- DatePeriod — Класс DatePeriod
- DatePeriod::__construct — Создает новый объект DatePeriod
- DatePeriod::getDateInterval — Gets the interval
- DatePeriod::getEndDate — Gets the end date
- DatePeriod::getStartDate — Gets the start date
- Функции даты и времени
- checkdate — Проверяет корректность даты по григорианскому календарю
- date_add — Псевдоним DateTime::add
- date_create_from_format — Псевдоним DateTime::createFromFormat
- date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat
- date_create_immutable — Псевдоним DateTimeImmutable::__construct
- date_create — Псевдоним DateTime::__construct
- date_date_set — Псевдоним DateTime::setDate
- date_default_timezone_get — Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
- date_default_timezone_set — Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
- date_diff — Псевдоним DateTime::diff
- date_format — Псевдоним DateTime::format
- date_get_last_errors — Псевдоним DateTime::getLastErrors
- date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString
- date_interval_format — Псевдоним DateInterval::format
- date_isodate_set — Псевдоним DateTime::setISODate
- date_modify — Псевдоним DateTime::modify
- date_offset_get — Псевдоним DateTime::getOffset
- date_parse_from_format — Получение информации о заданной в определенном формате дате
- date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате
- date_sub — Псевдоним DateTime::sub
- date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек
- date_sunrise — Возвращает время рассвета для заданных дня и местоположения
- date_sunset — Возвращает время захода солнца для заданных дня и местоположения
- date_time_set — Псевдоним DateTime::setTime
- date_timestamp_get — Псевдоним DateTime::getTimestamp
- date_timestamp_set — Псевдоним DateTime::setTimestamp
- date_timezone_get — Псевдоним DateTime::getTimezone
- date_timezone_set — Псевдоним DateTime::setTimezone
- date — Форматирует вывод системной даты/времени
- getdate — Возвращает информацию о дате/времени
- gettimeofday — Возвращает текущее время
- gmdate — Форматирует дату/время по Гринвичу
- gmmktime — Возвращает метку времени Unix для времени по Гринвичу
- gmstrftime — Форматирует дату/время по Гринвичу с учетом текущей локали
- idate — Преобразует локальное время/дату в целое число
- localtime — Возвращает локальное время
- microtime — Возвращает текущую метку времени Unix с микросекундами
- mktime — Возвращает метку времени Unix для заданной даты
- strftime — Форматирует текущую дату/время с учетом текущих настроек локали
- strptime — Разбирает строку даты/времени сгенерированную функцией strftime
- strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix
- time — Возвращает текущую метку времени Unix
- timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations
- timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers
- timezone_location_get — Псевдоним DateTimeZone::getLocation
- timezone_name_from_abbr — Возвращает временную зону в соответствии с аббревиатурой
- timezone_name_get — Псевдоним DateTimeZone::getName
- timezone_offset_get — Псевдоним DateTimeZone::getOffset
- timezone_open — Псевдоним DateTimeZone::__construct
- timezone_transitions_get — Псевдоним DateTimeZone::getTransitions
- timezone_version_get — Получение номера версии базы данных временных зон
- Допустимые форматы Даты/Времени
- Список поддерживаемых временных зон
Коментарии
I think it's important to mention with the DateTime class that if you're trying to create a system that should store UNIX timestamps in UTC/GMT, and then convert them to a desired custom time-zone when they need to be displayed, using the following code is a good idea:
<?php
date_default_timezone_set('UTC');
?>
Even if you use something like:
<?php
$date->setTimezone( new DateTimeZone('UTC') );
?>
... before you store the value, it doesn't seem to work because PHP is already trying to convert it to the default timezone.
If working with SQL databases it is important to realize that where DB normally reserve 0000-00-00 as a special value for indicating not valid date.
If this was converted in PHP, unexpected things happen.
<?php
$s = "0000-00-00 00:00:00";
$d = DateTime::createFromFormat('Y-m-d H:i:s',$s);
echo $d-> format("d.m.Y H:i:s");
// 30.11.-0001 00:00:00
?>
Available on https://3v4l.org/jnoIJ