Возвращает время, отформатированное в соответствии с аргументом format, используя метку времени, заданную аргументом timestamp или текущее системное время, если timestamp не задан. Другими словами, timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time().
Замечание:Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битового целого со знаком). Для Windows допустимы даты с 01-01-1970 по 19-01-2038.
Замечание:Для получения метки времени из строкового представления даты можно использовать функциюstrtotime(). Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (напрмер, функция MySQL UNIX_TIMESTAMP).
Таблица 1. В параметре format распознаются следующие символы
Символ в строке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, если дата соответствует летнему времени, иначе 0otherwise.
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().
Пример 1. Примеры использования функции date()
<?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)); ?>
Избежать распознавания символа как форматирующего можно, если экранировать этот символ с помощью \ Если в сочетании с \ символ являееся специальным (например, \t), следует добавлять еще один \.
Замечание:Этот метод более надежен, чем вычитание и прибавление секунд к метке времени, так какmktime() учитывает любые неоднозначности в датах (переход на летнее/зимнее время и др.).
Приведем еще несколько примеров использования функции date(). Помните, что следует экранировать все символы, которые вы хотите видеть в результате работы функции без изменений. Это относится и к символам, которые в текущей версии PHP не распознаются как специальные, так как этим символам может быть назначено значение в следующих версиях. Используйте одинарные кавычки для предотвращения преобразования \n в перевод строки.
Пример 4. Форматирование с использованием date()
<?php // Предположим, что текущая дата 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\t \i\s \t\h\e jS \d\a\y.'); // 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 \i\s\ \m\o\n\t\h'); // 17:03:17 m is month $today = date("H:i:s"); // 17:16:17 ?>
Для форматирования дат на других языках используйте функции setlocale() и strftime().
См. также описание функций getlastmod(), gmdate(), mktime(), strftime() и time().