wp_date() WP 5.3.0
Получает локализованную дату (переведенную на текущий язык) из переданной метки времени unix. Локализация PHP функции date().
Если в выводимой дате используется формат с месяцем или неделей в виде строки, то функция попытается перевести их на текущий язык. В остальных случаях - это аналог date() в PHP.
Это новая функция (введенная в версии 5.3), которая должна полностью заменить функцию date_i18n().
Заметка: этой функции, в отличии от date_i18n(), нужно передавать "реальную" метку времени Unix (метку в UTC/GMT формате, без добавления к ней сдвижки временной зоны). Сдвижка временной зоны добавляется автоматически внутри функции на основе третьего параметра $timezone.
Указать произвольную сдвижку временной зоны можно в третьем параметре $timezone.
В связи с введением в версии 5.3 нового API для работы со временем.
Не рекомендуется:
- Не получайте время
WP timestamps
(число равное метке времени + сдвижка времени сайта):- current_time( 'timestamp' )
- get_post_time( 'U' )
- Не локализуйте время/дату функцией:
- date_i18n( DATE_RFC3339, $timestamp + $offset )
- Не сохраняйте на постоянной основе
WP timestamps
. - Не сравнивайте
WP timestamp'ы
. - Не изменяйте временную зону PHP с помощью функции date_default_timezone_set() (это важное требование для правильной работы ядра).
Рекомендуется
- Получайте время как
Unix timestamp
(метка времени Unix без сдвижки) или как объект DateTimeImmutable: - Локализуйте время/дату базируясь на Unix timestamp:
- Сохраняйте
Unix timestamps
или форматы, которые точно указывают момент времени, например DATE_RFC3339. - Сравнивайте метки времени Unix, объекты DateTimeInterface или строковые даты в единой временной зоне.
- Используйте объекты: DateTimeZone и DateTimeImmutable (с функцией wp_date() для локализации), когда нужно получить время во временной зоне отличной от зоны сайта).
Хуки из функции
Возвращает
Строку/false. Переведенную дату. False когда введена неправильная метка времени.
Использование
wp_date( $format, $timestamp, $timezone );
- $format(строка) (обязательный)
- Формат в котором выводить дату, пример:
F j, Y
- Ноябрь 6, 2010. Полный список форматов. - $timestamp(число)
- Метка времени Unix из которой будет получена дата в указанном формате. По умолчанию используется текущая метка time().
По умолчанию: current time - $timezone(DateTimeZone)
- Временная зона, которая будет наложена на указанную метку времени. По умолчанию: wp_timezone().
По умолчанию: текущая временная зона сайта (из опций сайта)
Примеры
#1 Локализация php функции date() в WordPress
Демонстрация работы функции:
// текущее время echo wp_date( 'j F Y H:i:s' ); // 21 ноября 2019 17:52:15 (учитывается временная зона +5 часов) echo date( 'j F Y H:i:s' ); // 21 November 2019 12:52:15 (UTC время) // указанное время echo wp_date( 'j F Y H:i:s', 0 ); // 1 января 1970 06:00:00 echo wp_date( 'j M Y H:i:s', strtotime('1999-11-15') ); // 15 Ноя 1999 05:00:00 (учитывается временная зона +5 часов) echo wp_date( 'j M Y H:i:s', strtotime('1999-11-15'), new DateTimeZone('UTC') ); // 15 Ноя 1999 00:00:00 (UTC время)
Список изменений
С версии 5.3.0 | Введена. |