Функция WP_DATE() в WordPress 5.3.0

Функция 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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *