В WordPress есть функции, позволяющие узнавать и выводить текущее время и время публикации текущей записи или комментария. В функциях the_date(), the_time() и др.для задания форматирования времени и даты используется строка форматирования.
Например, шаблон l, F j, Y задает дату в виде Thursday, November 11, 2010
Время публикации текущей записи: get_the_time(), the_time(), get_the_date(), the_date()
Время публикации комментария: comment_time(), get_comment_time()
Текущее время: current_time()
Некоторые возможные составляющие шаблона формата даты и времени
В этой статье:
Функции даты и времени, описанные в Кодексе:
- date_i18n - локализованная дата, the_date,
- the_date_xml - дата в формате гг-мм-дд
- the_modified_date, the_modified_time - дата, время изменения записи
- the_modified_author - кто последним изменил запись
- get_calendar
- get_date_from_gmt
- get_lastpostdate
- get_lastpostmodified
- get_day_link
- get_gmt_from_date
- get_month_link - ссылка на архив (по умолчанию - текущего) месяца
- get_weekstartend
- get_year_link - ссылка на архив (по умолчанию - текущего) года
- human_time_diff
- is_new_day
- iso8601_timezone_to_offset
- iso8601_to_datetime
- mysql2date
- single_month_title- месяц/год текущей страницы
Время публикации текущей записи внутри цикла WordPress
get_the_time()
Извлекает время текущей записи
<?php get_the_time( $d, $post ); ?>
$d (string) (optional) Задает формат времени; по умолчанию используется формат, заданный в настройках блога.
$post (integer/object) (optional) ID записи или объект; по умолчанию: null. глобальный объект $post
Время в формате времени по умолчанию для записи с id=$post->ID:
<?php echo get_the_time('', $post->ID); ?>
в секундах
<?php $u_time = get_the_time('U'); ?>
the_time()
<?php the_time( $d ); ?>
Время в формате даты можно использовать вместо the_date():
<p>Дата (день, месяц, год) и время в 24-часовом формате публикации записи:</p> <p><?php the_time('j F, Y'); ?> в <?php the_time('G:i'); ?></p>
get_the_date()
извлекает дату написания текущей записи, всегда возвращает дату
<?php get_the_date( $d ); ?>
the_date()
выводит или возвращает (для использования в PHP-коде) дату записи или нескольких записей, созданных в один день.
<?php the_date( $format, $before, $after, $echo ); ?>
This entry was posted on <?php the_time('l, F jS, Y') ?> and is filed under <?php the_category(', ') ?>. This entry was posted on Friday, September 24th, 2004 and is filed under WordPress and WordPress Tips.
Время публикации комментария
<p> <?php comment_time('H:i:s'); ?></p>
Извлекает это значение функция get_comment_time()
Локализация
Для локализации используется функция date_i18n(). Также см. функции __(), _e(): get_the_date(__(…));
Текущее время
Вместо PHP-функции time() или mktime() или date() в WordPress предлагается собственная функция:
current_time()
current_time($type, $gmt = 0);
$type (string) - формат возврата времени mysql или timestamp
$gmt (integer) (optional) - временная зона: 1 - GMT или 0 - локальное время (по умолчанию)
Определение текущего времени и присвоение значений его составляющих переменным (например, 2010-08-20 10:41:13):
<?php $blogtime = current_time('mysql'); list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = split( '([^0-9])', $blogtime ); ?>
Форматирование: некоторые составляющие шаблона формата даты и времени
день месяца | ||
---|---|---|
d | числа с начальным нулем | 01–31 |
j | числа без начального нуля | 1–31 |
S | суффикс английского порядкового числительного для дня месяца (j) | st, nd, rd или th |
день недели | ||
l | полное название | Sunday – Saturday |
D | трехбуквенное сокращение | Mon – Sun |
месяц | ||
m | числа с начальным нулем | 01–12 |
n | числа без начального нуля | 1–12 |
F | полное текстовое название | January – December |
M | трехбуквенное сокращение | Jan - Dec |
год | ||
Y | 4 цифры | 1999, 2010 |
y | 2 последние цифры | 99, 10 |
время | ||
a | в нижнем регистре | am, pm |
A | в верхнем регистре | AM, PM |
g | часы в 12-часовом формате без начального нуля | 1–12 |
h | часы в 12-часовом формате с начальным нулем | 01–12 |
G | часы в 24-часовом формате без начального нуля | 0-23 |
H | часы в 24-часовом формате с начальным нулем | 00-23 |
i | минуты с начальным нулем | 00-59 |
s | секунды с начальным нулем | 00-59 |
T | Временная зона | EST, MDT ... |
Подробнее: форматирование даты и времени в PHP
Дополнительно: в разделе "Функции WordPress" также:
- URL и другая информация о блоге
- Функции, подключающие шаблоны
- Циклы WordPress
- wp_list_categories
- Вход в систему
- wp_list_pages - список ссылок на страницы
- wp_link_pages - ссылки на страницы статьи с nextpage
- Шорткод [gallery]
- Функции для работы с метками
- Функции action, filter, plugin и локализация
- Произвольные поля (custom fields)
- Функции для работы с типами данных (записей)
- Функция wp_insert_post - обновление/добавление записи заданного типа
- Административные меню
- Функции для работы с пользователями и ролями пользователей
По делу! Впечатляет!
..Спасибо!
Your blog never ceases to amaze me, it's very well written and organized.*-.:;
"...never ceases to amaze me..."
спасиб, то что надо
Очень полезная информация!... Может вы еще подскажите почему у меня время запланированных статей выходит в непонятное время... например запланирую в 03.00, а в итоге она публикуется после 11-12... это где-то настраивается?
Возможно, на сайте не задан часовой пояс? Тогда все должно быть просто: зайдите в настройки Параметры - Общие и выберите Часовой пояс
Спасибо. пригодилось для моего блога
Помогите, пожалуйста, разобраться. Что конкретно нужно вставить в шаблон, чтобы получить в результате вывод в определённом месте текущей даты и времени в формате, например, 05.02.2014, 15:42
Где бы почитать про работу WP с часовым поясом? сижу в Москве, +3. В админке указал часовой пояс +3; при этом новости и комментарии создаются с правильным текущим временем. Но смущает разница в показаниях WP фунций времени, вывода времени в админке, и текущего времени.
Текущее время получаю так: echo ' PHP time: '.date( 'Y-m-d H:i:s O');
Получаю PHP time: 2017-01-18 20:19:09 +0300
Вызываю функцию WP: echo 'WP time: '.current_time('c');
Получаю: WP time: 2017-01-18T23:19:09+03:00
Ну и в админке ниже поля выбора часового пояса висит: "Всемирное координированное время (UTC): 18.01.2017 20:25:52. Местное время: 18.01.2017 23:25:52."