date - Форматирует вывод системной даты/времени
Вернуться к: Функции даты и времени
date
(PHP 4, PHP 5, PHP 7)
date — Форматирует вывод системной даты/времени
Описание
$format
[, int $timestamp = time()
] )
Возвращает строку, отформатированную в соответствии с указанным шаблоном format.
Используется метка времени, заданная аргументом timestamp, или
текущее системное время, если timestamp не задан.
Таким образом, timestamp является
необязательным и по умолчанию равен значению, возвращаемому функцией
time().
Список параметров
-
format -
Шаблон результирующей строки (string) с датой. См. параметры форматирования ниже. Также существует несколько предопределенных констант даты/времени, которые могут быть использованы вместо этих параметров. Например:
DATE_RSSзаменяет шаблон 'D, d M Y H:i:s'.В параметре formatраспознаются следующие символыСимвол в строке formatОписание Пример возвращаемого значения День --- --- d День месяца, 2 цифры с ведущим нулём от 01 до 31 D Текстовое представление дня недели, 3 символа от Mon до Sun j День месяца без ведущего нуля от 1 до 31 l (строчная 'L') Полное наименование дня недели от Sunday до Saturday N Порядковый номер дня недели в соответствии со стандартом ISO-8601 (добавлен в версии PHP 5.1.0) от 1 (понедельник) до 7 (воскресенье) S Английский суффикс порядкового числительного дня месяца, 2 символа st, nd, rd или th. Применяется совместно с j w Порядковый номер дня недели от 0 (воскресенье) до 6 (суббота) z Порядковый номер дня в году (начиная с 0) От 0 до 365 Неделя --- --- W Порядковый номер недели года в соответствии со стандартом ISO-8601; недели начинаются с понедельника (добавлено в версии PHP 4.1.0) Например: 42 (42-я неделя года) Месяц --- --- F Полное наименование месяца, например January или March от January до December m Порядковый номер месяца с ведущим нулём от 01 до 12 M Сокращенное наименование месяца, 3 символа от Jan до Dec n Порядковый номер месяца без ведущего нуля от 1 до 12 t Количество дней в указанном месяце от 28 до 31 Год --- --- L Признак високосного года 1, если год високосный, иначе 0. o Номер года в соответствии со стандартом ISO-8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (добавлен в версии PHP 5.1.0) Примеры: 1999 или 2003 Y Порядковый номер года, 4 цифры Примеры: 1999, 2003 y Номер года, 2 цифры Примеры: 99, 03 Время --- --- a Ante meridiem (англ. "до полудня") или Post meridiem (англ. "после полудня") в нижнем регистре am или pm A Ante meridiem или Post meridiem в верхнем регистре AM или PM B Время в формате Интернет-времени (альтернативной системы отсчета времени суток) от 000 до 999 g Часы в 12-часовом формате без ведущего нуля от 1 до 12 G Часы в 24-часовом формате без ведущего нуля от 0 до 23 h Часы в 12-часовом формате с ведущим нулём от 01 до 12 H Часы в 24-часовом формате с ведущим нулём от 00 до 23 i Минуты с ведущим нулём от 00 до 59 s Секунды с ведущим нулём от 00 до 59 u Микросекунды (добавлено в версии PHP 5.2.2). Учтите, что date() всегда будет возвращать 000000, т.к. она принимает целочисленный (integer) параметр, тогда как DateTime::format() поддерживает микросекунды. Например: 654321 Временная зона --- --- e Код шкалы временной зоны(добавлен в версии PHP 5.1.0) Примеры: UTC, GMT, Atlantic/Azores I (заглавная i) Признак летнего времени 1, если дата соответствует летнему времени, 0 в противном случае. O Разница с временем по Гринвичу, в часах Например: +0200 P Разница с временем по Гринвичу с двоеточием между часами и минутами (добавлено в версии PHP 5.1.3) Например: +02:00 T Аббревиатура временной зоны Примеры: EST, MDT ... Z Смещение временной зоны в секундах. Для временных зон, расположенных западнее UTC возвращаются отрицательные числа, а расположенных восточнее UTC - положительные. от -43200 до 50400 Полная дата/время --- --- c Дата в формате стандарта ISO 8601 (добавлено в PHP 5) 2004-02-12T15:19:21+00:00 r Дата в формате » RFC 2822 Например: Thu, 21 Dec 2000 16:01:07 +0200 U Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) Смотрите также time() Любые другие символы, встреченные в строке-шаблоне, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate().
Замечание:
Поскольку рассматриваемая функция принимает в качестве параметра временные метки типа integer, форматирующий символ u будет полезен только при использовании функции date_format() и пользовательских меток времени, созданных с помощью функции date_create().
-
timestamp -
Необязательный параметр
timestampпредставляет собой integer метку времени, по умолчанию равную текущему локальному времени, еслиtimestampне указан. Другими словами, значение по умолчанию равно результату функции time().
Возвращаемые значения
Возвращает отформатированную строку с датой. При передаче нечислового
значения в качестве параметра timestamp будет возвращено
FALSE и вызвана ошибка уровня E_WARNING.
Ошибки
Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE,
и/или ошибку уровня E_STRICT или E_WARNING при использовании системных
настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()
Список изменений
| Версия | Описание |
|---|---|
| 5.1.0 | Допустимым диапазоном дат для временных меток обычно являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Они соответствуют минимальному и максимальному значению 32-битного целого числа со знаком). Однако для PHP версии ниже 5.1.0 в некоторых операционных системах (например, Windows) этот диапазон был ограничен датами 01-01-1970 до 19-01-2038. |
| 5.1.0 |
Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня |
| 5.1.1 |
Для стандартных форматов даты/времени существуют специальные
константы, которые могут
быть указаны в качестве параметра format.
|
Примеры
Пример #1 Примеры использования функции date()
<?php
// установка временной зоны по умолчанию. Доступно начиная с версии PHP 5.1
date_default_timezone_set('UTC');
// выведет примерно следующее: Monday
echo date("l");
// выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \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));
/* пример использования константы в качестве форматирующего параметра */
// выведет примерно следующее: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// выведет примерно следующее: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>
Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слеша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.
Пример #2 Экранирование символов в функции date()
<?php
// выведет примерно следующее: Wednesday the 15th
echo date('l \t\h\e jS');
?>
Для вывода прошедших и будущих дат удобно использовать функции date() и mktime().
Пример #3 Пример совместного использования функций 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 не распознаются как форматирующие, поскольку это может быть введено в следующих версиях. Для экранировании управляющих последовательностей (например, \n) следует использовать одинарные кавычки.
Пример #4 Форматирование с использованием date()
<?php
// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся во временной зоне Mountain Standard Time (MST)
$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'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$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 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>
Для форматирования дат на других языках используйте вместо date() функции setlocale() и strftime().
Примечания
Замечание:
Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime(). Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).
Начиная с версии PHP 5.1, временную метку начала запроса можно получить из поля $_SERVER['REQUEST_TIME'].
Смотрите также
- gmdate() - Форматирует дату/время по Гринвичу
- idate() - Преобразует локальное время/дату в целое число
- getdate() - Возвращает информацию о дате/времени
- getlastmod() - Определение времени последней модификации страницы
- mktime() - Возвращает метку времени Unix для заданной даты
- strftime() - Форматирует текущую дату/время с учетом текущих настроек локали
- time() - Возвращает текущую метку времени Unix
- strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix
- Предопределенные константы даты и времени
Вернуться к: Функции даты и времени