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