Функция WP_DATE() в WordPress 5.3.0
Функция wp_date()
используется для получения даты в локализованном формате. Она является более новой и предназначена для замены функции date_i18n()
, улучшая некоторые аспекты её работы.
Заметьте, что в отличие от date_i18n()
, wp_date()
принимает настоящий Unix-метка времени, не учитывая временные смещения.
Использование функции
Сигнатура функции
wp_date( $format, $timestamp, $timezone );
Параметры:
$format
(строка) — обязательный параметр, формат даты в стиле PHP.$timestamp
(целое число) — Unix-метка времени. По умолчанию используется текущее время, если параметр не указан.$timezone
(DateTimeZone) — временная зона для отображения результата. По умолчанию берётся из настроек сайта.
Возвращаемое значение
Функция возвращает строку с датой или false
, если передан недействительный временной штамп.
Примеры использования
Пример 1: Текущая дата
$format = 'j F Y H:i:s'; // Формат даты
echo wp_date( $format ); // Например, "24 марта 2021 08:12:07" (время сайта = +5 часов)
Пример 2: Указанная дата
// Дата начала эпохи Unix
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 Nov 1999 05:00:00" (время сайта = +5 часов)
echo wp_date( 'j M Y H:i:s', strtotime('1999-11-15'), new DateTimeZone('UTC') );
// Вывод: "15 Nov 1999 00:00:00" (UTC время)
Пример 3: Получение даты в заданном формате
echo wp_date( get_option( 'date_format' ), get_post_timestamp() );
// Вывод: дата в формате, заданном в настройках
Примечания
- Используется глобальный объект
WP_Locale
, который содержит информацию о локализации для даты и времени.
История изменений
- Функция была представлена в версии WordPress 5.3.0.
Код функции
Вот как выглядит код функции wp_date()
:
function wp_date( $format, $timestamp = null, $timezone = null ) {
global $wp_locale;
if ( null === $timestamp ) {
$timestamp = time();
} elseif ( ! is_numeric( $timestamp ) ) {
return false;
}
if ( ! $timezone ) {
$timezone = wp_timezone();
}
$datetime = date_create( '@' . $timestamp );
$datetime->setTimezone( $timezone );
// Форматирование даты в соответствии с локализацией
if ( empty( $wp_locale->month ) || empty( $wp_locale->weekday ) ) {
$date = $datetime->format( $format );
} else {
$format = preg_replace( '/(?get_month( $datetime->format( 'm' ) );
$weekday = $wp_locale->get_weekday( $datetime->format( 'w' ) );
for ( $i = 0; $i < $format_length; $i++ ) {
switch ( $format[$i] ) {
case 'D':
$new_format .= addcslashes( $wp_locale->get_weekday_abbrev( $weekday ), 'A..Za..z' );
break;
case 'F':
$new_format .= addcslashes( $month, 'A..Za..z' );
break;
case 'l':
$new_format .= addcslashes( $weekday, 'A..Za..z' );
break;
case 'M':
$new_format .= addcslashes( $wp_locale->get_month_abbrev( $month ), 'A..Za..z' );
break;
case 'a':
case 'A':
$new_format .= addcslashes( $wp_locale->get_meridiem( $datetime->format($format[$i])), 'A..Za..z' );
break;
case '':
$new_format .= $format[$i];
if ( $i < $format_length ) {
$new_format .= $format[++$i];
}
break;
default:
$new_format .= $format[$i];
break;
}
}
$date = $datetime->format( $new_format );
$date = wp_maybe_decline_date( $date, $format );
}
$date = apply_filters( 'wp_date', $date, $format, $timestamp, $timezone );
return $date;
}
Связанные функции
Вот некоторые функции, связанные с датами и временем в WordPress:
comment_date()
comment_time()
current_time()
date_i18n()
get_comment_date()
get_comment_time()
get_post_time()
get_the_date()
the_date()
- и другие.
Эти функции могут быть полезны в зависимости от ваших задач при работе с датами в WordPress.