Дата и время в 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') )
Полезные ссылки: