Получить текущую дату/время в WordPress

14 февр. 2012 г., 07:49:25
Просмотры: 39.8K
Голосов: 0

В моем плагине я пытаюсь получить текущую дату/время блога в коде, но похоже, что возвращается некорректная дата/время. Когда я публикую новый пост в блоге, он показывает правильную дату/время, поэтому я не уверен, в чем проблема. Правильно ли я работаю с кодом? (Время публикации: Опубликовано: 13 февраля 2012 @ 22:45)

PHP Код

<?
$t_time = get_the_time( __( 'Y/m/d g:i:s A' ) ); // Получаем время поста
echo "<h1>ВРЕМЯ БЛОГА</h1>";
echo $t_time . "<br>";
echo "<br>";
echo "<h1>ВРЕМЯ СЕРВЕРА</h1>";
echo date("Y/m/d g:i:s A");
?>

ВЫВОД ВРЕМЯ БЛОГА 2011/05/20 10:28:16 PM

ВРЕМЯ СЕРВЕРА 2012/02/14 5:41:35 AM

0
Все ответы на вопрос 3
2
10

В WordPress есть функция под названием current_time();, в которую вы передаёте либо 'timestamp', либо 'mysql', и она возвращает время.

Подробнее: https://developer.wordpress.org/reference/functions/current_time/

14 февр. 2012 г. 10:31:12
Комментарии

+1. Я бы добавил, что WordPress принудительно устанавливает часовой пояс сервера в UTC, поэтому следует использовать функции WordPress (так как они учитывают это), а не нативные функции PHP.

Stephen Harris Stephen Harris
14 февр. 2012 г. 11:37:18

С течением времени этот ответ перестал быть полезным и корректным. current_time() возвращает unix time() плюс смещение часового пояса, фактически то, что называется "wordpress timestamp". Использование с 'timestamp' теперь устарело.

Brian C Brian C
13 июн. 2021 г. 08:13:33
0

Начиная с WordPress 5.3, использование current_time( 'timestamp' ) больше не рекомендуется. Если вам необходимо получить время с учетом часового пояса сайта, рекомендуется использовать следующие функции:

 1. current_datetime()
 2. time()
 3. get_post_datetime()
 4. get_post_timestamp()

Почему это изменение?

Компонент даты/времени ранее полагался на WordPress timestamp (до WordPress 5.3), что вызывало множество ошибок и ограничений при работе с актуальными версиями PHP.

Подробная информация здесь: https://make.wordpress.org/core/2019/09/23/date-time-improvements-wp-5-3/

19 февр. 2021 г. 23:51:42
0

Код

Актуальный (2020) правильный код для отображения полной даты и времени в локализованном виде через новую функцию ядра WordPress wp_date():

echo wp_date( get_option( 'date_format' ), get_post_timestamp() )
   . wp_date( get_option( 'time_format' ), get_post_timestamp() );

Этот относительно короткий фрагмент кода:

  • соблюдает запрошенные параметры форматирования даты и времени из настроек WordPress
  • выполняет соответствующие переводы
  • применяет правильный часовой пояс из настроек
  • считается лучшей практикой в 2021 году и далее.

Обоснование

С выходом wp_date() в WordPress 5.3 (2019), WordPress значительно продвинулся в исправлении запутанного и нерабочего способа обработки времени, в частности проблемы, когда временные метки WordPress не совпадали с Unix-метками (значение time()), но имели добавленное смещение часового пояса. Путаница возникала из-за того, что в Unix-мире вывод time() (так называемая "Unix-метка времени") исторически всегда был в формате GMT, и усугублялась использованием термина "Unix-метка времени" для описания этих "меток времени WordPress". Новая функция wp_date() выполняет локализацию, которая обычно требуется, и корректно работает с предоставленными значениями временных меток GMT.

Обратите внимание, что использование PHP-функции date_default_timezone_set() для установки часового пояса сайта (кроме локального) по-прежнему будет ломать WordPress, но теперь есть хорошие альтернативы, которые работают так, как ожидается. Стоит отметить, что использование date_default_timezone_set() теперь определяется в "Здоровье сайта" как "критическое", поскольку это нарушает обработку времени в WordPress и некоторых плагинах; если вы используете его в старом коде, вам следует удалить его как можно скорее и заменить использование date() на wp_date().

Документация

Более полное введение в новые функции даты и времени, написанное командой, разработавшей новый код, находится здесь: https://make.wordpress.org/core/2019/09/23/date-time-improvements-wp-5-3/

Обратите внимание, что некоторые новые функции возвращают объекты PHP DateTimeImmutable, что значительно упрощает работу. Кроме того, все функции, перечисленные в связанном введении, теперь являются частью ядра и, следовательно, имеют страницы в стандартной документации PHP.

Также там есть заметки о том, что использовать, а что нет (хотя на данный момент там отсутствуют примеры кода).

13 июн. 2021 г. 08:51:18