(PHP 4, PHP 5, PHP 7, PHP 8)
date — Форматирует метку времени эпохи Unix
Функция возвращает отформатированную по заданной строке формата строку с датой и (или) временем,
которую сгенерировала на основе параметра timestamp —
целочисленной метки Unix-времени,
которую передали в функцию или которую функция получила на основе текущего системного времени,
если метку времени не передали. Поэтому параметр timestamp
необязателен и по умолчанию равен значению, которое возвращает
функция time() .
Метки времени Unix не обрабатывают часовые пояса. Информацию о дате и времени с прикреплённым часовым поясом форматируют методом DateTimeInterface::format() класса DateTimeImmutable .
formatФормат, который принимается методом DateTimeInterface::format() .
Замечание: Функция date() генерирует для поля микросекунд значение
000000, поскольку принимает метку времени как целочисленное (int) значение в секундах, тогда как метод DateTimeInterface::format() поддерживает микросекунды, если объект DateTimeInterface создали с микросекундами.
timestamptimestamp —
целочисленная (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 */
// Выведет что-то наподобие: 2005年8月15日 15:12:46 UTC
echo date(DATE_RFC822) . "\n";
// Выведет что-то наподобие: 2000年07月01日T00: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'] .