Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битового целого со знаком). Для Windows допустимы даты с 01-01-1970 по 19-01-2038.
Замечание: Для получения метки времени из строкового представления даты можно использовать функцию strtotime(). Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (напрмер, функция MySQL UNIX_TIMESTAMP).
Символ в строке format | Описание | Пример возвращаемого значения |
a | Ante meridiem или Post meridiem в нижнем регистре | am или pm |
A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
B | Время в стадарте Swatch Internet | От 000 до 999 |
c | Дата в формате ISO 8601 (добавлено в PHP 5) | 2004-02-12T15:19:21+00:00 |
d | День месяца, 2 цифры с ведущими нулями | от 01 до 31 |
D | Сокращенное наименование дня недели, 3 символа | от Mon до Sun |
F | Полное наименование месяца, например | January или March от January до December |
g | Часы в 12-часовом формате без ведущих нулей | От 1 до 12 |
G | Часы в 24-часовом формате без ведущих нулей | От 0 до 23 |
h | Часы в 12-часовом формате с ведущими нулями | От 01 до 12 |
H | Часы в 24-часовом формате с ведущими нулями | От 00 до 23 |
i | Минуты с ведущими нулями | 00 to 59 |
I | (заглавная i) Признак летнего времени | 1, если дата соответствует летнему времени, иначе 0. |
j | День месяца без ведущих нулей | От 1 до 31 |
l | (строчная 'L') Полное наименование дня недели | От Sunday до Saturday |
L | Признак високосного года | 1, если год високосный, иначе 0. |
m | Порядковый номер месяца с ведущими нулями | От 01 до 12 |
M | Сокращенное наименование месяца, 3 символа | От Jan до Dec |
n | Порядковый номер месяца без ведущих нулей | От 1 до 12 |
O | Разница с временем по Гринвичу в часах | Например: +0200 |
r | Дата в формате RFC 2822 | Например: Thu, 21 Dec 2000 16:01:07 +0200 |
s | Секунды с ведущими нулями | От 00 до 59 |
S | Английский суффикс порядкового числительного дня месяца, 2 символа | st, nd, rd или th. Применяется совместно с j |
t | Количество дней в месяце | От 28 до 31 |
T | Временная зона на сервере | Примеры: EST, MDT ... |
U | Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) | См. также time() |
w | Порядковый номер дня недели | От 0 (воскресенье) до 6 (суббота) |
W | Порядковый номер недели года по ISO-8601, первый день недели - понедельник (добавлено в PHP 4.1.0) | Например: 42 (42-я неделя года) |
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2003 |
y | Номер года, 2 цифры | Примеры: 99, 03 |
z | Порядковый номер дня в году (нумерация с 0) | От 0 до 365 |
Z | Смещение временной зоны в секундах. Для временных зон западнее UTC это отрицательное число, восточнее UTC - положительное. | От -43200 до 43200 |
Любые другие символы, встреченные в строке format, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate().
Пример кода
<?php
// вывод дня недели, например Wednesday
echo date("l");
// вывод даты в формате: Wednesday 15th of January 2003 05:51:38 AM
echo date("l dS of F Y h:i:s A");
// вывод: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
?>
Избежать распознавания символа как форматирующего можно, если экранировать этот символ с помощью Если в сочетании с символ являееся специальным (например, ), следует добавлять еще один .
Пример кода
<?php
// Экранирование символов в функции date()
// вывод: Wednesday the 15th
echo date("l \the jS");
?>
Функции date() и mktime() для вывода прошедших и будущих дат.
Пример кода
<?php
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
?>
Замечание: Лучше вычитать или прибавлять количество секунд в дне или месяце к к метке времени, так как приэтом будет учтен переход на летнее время.
Приведем еще несколько примеров использования функции date(). Помните, что следует экранировать все символы, которые вы хотите видеть в результате работы функции без изменений. Это относится и к символам, которые в текущей версии PHP не распознаются как специальные, так как этим символам может быть назначено значение в следующих версиях. Используйте одинарные кавычки для предотвращения преобразования
в перевод строки.
Пример кода
<?php
// Форматирование с использованием date()
// Предположим, что текущая дата March 10th, 2001, 5:16:18 pm
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day z '); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('i is he jS day.'); // It is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s m is mo
h'); // 17:03:17 m is month
$today = date("H:i:s"); // 17:16:17
?>
Для форматирования дат на других языках используйте функции setlocale() и strftime().