(PHP 4, PHP 5, PHP 7, PHP 8)
date — Форматирует метку времени эпохи Unix
Функция возвращает отформатированную по заданной строке формата строку с датой и (или) временем,
которую сгенерировала на основе параметра timestamp —
целочисленной метки Unix-времени,
которую передали в функцию или которую функция получила на основе текущего системного времени,
если метку времени не передали. Поэтому параметр timestamp
необязателен и по умолчанию равен значению, которое возвращает
функция time().
Метки времени Unix не обрабатывают часовые пояса. Для форматирования информации о дате и времени с прикреплённым часовым поясом пользуются методом класса DateTimeImmutable — DateTimeInterface::format().
formatФормат, который принимается методом DateTimeInterface::format().
Замечание: Функция date() генерирует для поля микросекунд значение
000000, поскольку принимает метку времени как целочисленное (int) значение в секундах, тогда как метод DateTimeInterface::format() поддерживает микросекунды, если объект DateTimeInterface создали с микросекундами.
timestamp
Необязательный параметр timestamp —
целочисленная (int) метка времени, которая по умолчанию равна текущему местному времени, если параметр timestamp
не указали или равен null. Говоря по другому, значение по умолчанию равно результату функции time().
Функция возвращает отформатированную строку с датой.
Каждый вызов функции для работы с датой и временем генерирует ошибку уровня E_WARNING
при неправильных настройках часового пояса. Смотрите также описание функции
date_default_timezone_set().
| Версия | Описание |
|---|---|
| 8.0.0 |
Параметр timestamp теперь принимает значение null.
|
Пример #1 Примеры использования функции date()
<?php
// Установка часового пояса по умолчанию
date_default_timezone_set('UTC');
// Выведет что-то наподобие: Monday
echo date("l") . "\n";
// Выведет что-то наподобие: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A') . "\n";
// Выведет: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)) . "\n";
/* Пример константы в параметре format */
// Выведет что-то наподобие: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822) . "\n";
// Выведет что-то наподобие: 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(). Обратите внимание: каждый символ, которым не планировалось форматировать время, экранируется, поскольку символы со значением форматирования дадут нежелательный результат, если функция встретит такие символы там, где требовалось вывести сам символ, а другим символам могут назначить свойства форматирования в следующих версиях PHP. При экранировании указывают одинарные кавычки, чтобы символы наподобие \n не превращались в символы новой строки.
Пример #3 Пример форматирования даты функцией date()
<?php
// Предположим, что сегодня 10 марта 2001 и 5:16:18 вечера
// в часовом поясе Mountain Standard Time (MST)
date_default_timezone_set("America/Phoenix");
echo date("F j, Y, g:i a") . "\n"; // March 10, 2001, 5:16 pm
echo date("m.d.y") . "\n"; // 03.10.01
echo date("j, n, Y") . "\n"; // 10, 3, 2001
echo date("Ymd") . "\n"; // 20010310
echo date('h-i-s, j-m-y, it is w Day') . "\n"; // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
echo date('\i\t \i\s \t\h\e jS \d\a\y.') . "\n"; // it is the 10th day.
echo date("D M j G:i:s T Y") . "\n"; // Sat Mar 10 17:16:18 MST 2001
echo date('H:m:s \m \i\s\ \m\o\n\t\h') . "\n"; // 17:03:18 m is month
echo date("H:i:s") . "\n"; // 17:16:18
echo date("Y-m-d H:i:s") . "\n"; // 2001-03-10 17:16:18 (the MySQL DATETIME format)Даты на других языках вместо функции date() форматируют методом IntlDateFormatter::format().
Замечание:
Метку времени из строкового представления даты генерируют функцией strtotime(). Кроме того, в отдельных базах данных есть функции для преобразования внутреннего представления даты в метки времени (например, функция » UNIX_TIMESTAMP БД MySQL).
Метка времени начала запроса доступна в переменной $_SERVER['REQUEST_TIME'].