WordPress как на ладони

Дата и время в WordPress — Форматы даты и времени

В WordPress есть функции, которые получают дату или время записи, комментария или чего-то еще: the_date(), the_time(), mysql2date() и т.д. В каждую из таких функций можно передать формат, чтобы получить время или дату в нужном формате. В этой заметке показано, как получить любой формат и какие символы в указанном формате за что отвечают.

Читайте также: Date/Time в WordPress

Простой пример: вывод на экран времени публикации записи:

<?php the_time('j F Y в H:i'); ?>

Выведет дату в виде: 1 апреля 2016 в 20:09.

Все символы формата даты и времени

Рассмотрим все специальные символы, которые можно использовать в формате.

День месяца
d 01–31 Число, с нулем впереди
j 1–31 Число, без нуля впереди
S st, nd or th in the 1st, 2nd or 15th. Английский суффикс дня месяца
День недели
l Sunday – Saturday (Понедельник - Воскресенье) Полное название (строчная 'L')
D Mon – Sun (Пон - Вс) Короткое название
N 1 (понедельник) - 7 (воскресенье) Номер дня недели
w 0 (воскресенье) - 6 (суббота) Номер дня недели
Месяц
m 01–12 Число, с нулем впереди
n 1–12 Число, без нуля впереди
F January – December (Январь - Декабрь) Полное название
M Jan - Dec (Янв - Дек) Короткое название
t 28 - 31 Количество дней в месяце
Год
Y 1999, 2003 Число, 4 цифры
y 99, 03 Число, 2 цифры
z 0 - 365 Номер дня в году (начиная с 0)
W 34 (34-я неделя года) Номер недели года
L 1 или 0 Високосный ли это год
Время
a am, pm Строчный диапазон
A AM, PM Прописной диапазон
h 01–12 Часы (0-12), с нулем впереди
g 1–12 Часы (0-12), без нуля впереди
H 00-23 Часы (0-24), с нулем впереди
G 0-23 Часы (0-24), без нуля впереди
i 00-59 Минуты, с нулем впереди
s 00-59 Секунды, с нулем впереди
T EST, MDT ... Аббревиатура временной зоны
Микросекунды
u 012345 Микросекунды - 'H:i:s.u' > 08:07:41.285872
Полные дата и время
c 2004-02-12T15:19:21+00:00 Дата в формате стандарта ISO 8601
r Thu, 21 Dec 2000 16:01:07 +0200 Дата в формате » RFC 2822
U 1455880176 Число, штамп времени Unix - количество секунд с 1 января 1970 года

Форматы из таблицы - это стандарт PHP и также могут быть использованы для форматирования даты в PHP, например, с помощью функции date().

Примеры

Все функции WordPress для работы с датами и временем.

Формат Результат
F j, Y g:i a November 6, 2010 12:50 am
F j, Y November 6, 2010
F, Y November, 2010
g:i a 12:50 am
g:i:s a 12:50:48 am
l, F jS, Y Saturday, November 6th, 2010
M j, Y @ G:i Nov 6, 2010 @ 0:50
Y/m/d \a\t g:i A 2010/11/06 at 12:50 AM
Y/m/d \a\t g:ia 2010/11/06 at 12:50am
Y/m/d g:i:s A 2010/11/06 12:50:48 AM
Y/m/d 2010/11/06
Y-m-d H:i:s 2017-11-06 21:37:22

Пример с функцией WordPress

Пост опубликован <?php the_time('j F Y в H:i') ?> и находится в рубриках <?php the_category(', ') ?>.

Выведет:

Пост опубликован 1 апреля 2016 в 20:09 и находится в рубриках WordPress, Кодекс.

Опции связанные с датами

var_dump( [
	'date_format'     => get_option( 'date_format' ),
	'time_format'     => get_option( 'time_format' ),
	'gmt_offset'      => get_option( 'gmt_offset' ), // may be string - depends on value of `timezone_string`
	'offset'          => (float) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS,
	'start_of_week'   => (int) get_option( 'start_of_week', 0 ),
	'timezone_string' => get_option( 'timezone_string' ),
] );

/*
array(6) {
  ["date_format"]=> string(5) "j M Y"
  ["time_format"]=> string(3) "H:i"
  ["gmt_offset"]=> float(5)
  ["offset"]=> float(18000)
  ["start_of_week"]=> int(1)
  ["timezone_string"]=> string(0) "Asia/Tashkent"
}
*/

Экранирование

Если использовать символы не из таблицы, то они будут показаны как есть, например, в из примера выше. Но когда нужно, чтобы спецсимвол не обрабатывался (использовался как есть), его нужно экранировать обратным слэшем \.

echo get_the_time('j F Y - это формат \j \F \Y'); //> 1 апреля 2016 - это формат j F Y

Локализация

Для перевода строк в дате вроде: November на язык сайта, используется функция date_i18n().

Также, для локализации формата можно использовать стандартные функции локализации: __(), _e() и т.д. Например:

get_the_date( __('j F Y в H:i','dom') )

--

10 комментариев
    Войти