PHP Date() и функция времени: как получить текущую временную метку?

⚡ Умное резюме

Функция `date()` в PHP форматирует метки времени в удобочитаемый формат даты и времени. В этом пошаговом руководстве объясняется синтаксис даты, метка времени Unix, как перечислить и установить часовые пояса, функция `mktime` для создания меток времени, а также приводится полный справочник символов форматирования времени, дня, месяца и года.

  • 📅 Что делает функция date(): Функция date преобразует метку времени в отформатированную строку, используя такие символы, как Y, m и d, обозначающие год, месяц и день.
  • 🇧🇷 Временная метка Unix: Метка времени — это количество секунд, прошедших с 1 января 1970 года по Гринвичу, а функция time() возвращает текущее значение.
  • 🌍 Часовые пояса: Параметр date_default_timezone_set изменяет активный часовой пояс, а DateTimeZone::listIdentifiers перечисляет все поддерживаемые часовые пояса.
  • 🔧 mktime: Функция mktime формирует метку времени, используя указанные час, минуту, секунду, месяц, день и год.
  • 🔤 Формат символов: Для вывода используются отдельные буквы, например, H для 24-часового формата времени, l для названия дня недели и F для названия месяца.
  • 📐 Справочные таблицы: В сгруппированных таблицах перечислены символы формата времени, дня, месяца и года, для каждого из которых приведен пример использования.
  • 🤖 AI-помощь: Инструменты искусственного интеллекта могут генерировать коды форматирования дат и разницы между ними, а также помогать устранять ошибки, связанные с некорректным отображением часовых поясов.

Функция PHP date ()

Функция PHP date ()

Функция `date` в PHP — это встроенная функция, упрощающая работу с типом данных «дата». Функция `date` в PHP используется для форматирования даты или времени в удобочитаемый формат. Она может использоваться для отображения даты публикации статьи или записи времени последнего обновления данных в базе данных.

Синтаксис и пример даты PHP

Функция `date()` в PHP имеет следующий базовый синтаксис.

<?php
date(format,[timestamp]);
?>

ВОТ,

  • Функция “date(…)” возвращает текущую метку времени в формате PHP на сервере.
  • «Формат» — это общий формат, в котором мы хотим получить результат, например:
    • “Ymd” — это обозначение формата даты PHP: ГГГГ-ММ-ДД
    • «Y» для отображения текущего года
  • Параметр «[timestamp]» является необязательным. Если метка времени не указана, PHP будет использовать текущую дату и время на сервере.

Рассмотрим простой пример, отображающий текущий год.

<?php

echo date("Y");

?>

Выход:

2026

Что такое временная метка?

В PHP метка времени — это числовое значение в секундах между текущим временем и значением в момент времени 1.st Январь 1970 г., 00:00:00 по Гринвичскому времени (GMT).

Значение, возвращаемое функцией времени, зависит от часового пояса по умолчанию.

Часовой пояс по умолчанию задается в файле php.ini. Его также можно установить программно с помощью функции date_default_timezone_set.

Приведённый ниже код отображает текущую метку времени.

<?php

echo time();

?>

Предположим, вы сохранили файл timestamp.php в папке phptuts. Перейдите по указанному пути. URL http://localhost/phptuts/timestamp.php

TimeStamp

Примечание: значение метки времени не является постоянным. Оно меняется каждую секунду.

Получение списка доступных идентификаторов часовых поясов

Прежде чем рассматривать, как программно установить часовой пояс по умолчанию, давайте посмотрим, как получить список поддерживаемых часовых поясов.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

foreach($timezone_identifiers as $key => $list){

echo $list . "<br/>";

}
?>

ВОТ,

  • Вызов функции “$timezone_identifiers = DateTimeZone::listIdentifiers();” обращается к статическому методу listIdentifiers встроенного класса DateTimeZone. Метод listIdentifiers возвращает список идентификаторов, которые присваиваются переменной $timezone_identifiers.
  • Функция «foreach{…}» перебирает элементы массива и выводит их значения.

Предположим, вы сохранили файл list_time_zones.php в папке phptuts. Перейдите по указанному пути. URL http://localhost/phptuts/list_time_zones.php

Идентификаторы часовых поясов

PHP устанавливает часовой пояс программно

Функция date_default_timezone_set позволяет вам установить часовой пояс по умолчанию из PHP-скрипта.

Установленный часовой пояс будет использоваться для всех дат. Функции PHP в ваших скриптах. Синтаксис следующий.

<?php
date_default_timezone_set(string $timezone_identifier);
?>

ВОТ,

  • «date_default_timezone_set()» — это функция, которая устанавливает часовой пояс по умолчанию.
  • «строка $timezone_identifier» — идентификатор часового пояса.

Приведённый ниже скрипт отображает время в соответствии с часовым поясом по умолчанию, установленным в файле php.ini. Затем он изменяет часовой пояс по умолчанию на Asia/Calcutta и снова отображает время.

<?php
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");

date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
?>

Предположим, вы сохранили файл set_time_zone.php в папке phptuts. Перейдите по указанному пути. URL http://localhost/phptuts/set_time_zone.php

PHP устанавливает часовой пояс программно

Функция PHP Mktime

Функция mktime возвращает метку времени в формате Юникс формат.

Он имеет следующий синтаксис.

<?php
mktime(hour, minute, second, month, day, year, is_dst);
?>

ВОТ,

  • «mktime(…)» — это функция отметки времени PHP make.
  • «Час» — необязательный параметр; это число, обозначающее текущий час.
  • «Минута» — необязательный параметр; это количество минут.
  • «Секунда» — необязательный параметр; это количество секунд.
  • «Месяц» — необязательный параметр; это номер месяца.
  • «День» — необязательный параметр; это номер дня.
  • «Год» — необязательный параметр; это номер года.
  • Параметр “is_dst” является необязательным; он используется для определения перехода на летнее время. Значение 1 означает переход на летнее время, 0 — нет, а -1 — неизвестно.

Рассмотрим теперь пример, в котором с помощью функции mktime создается метка времени для даты 13.10.2025.

<?php

echo mktime(0,0,0,10,13,2025);

?>

ВОТ,

  • «0,0,0» — это, соответственно, час, минута и секунда.
  • «10» — месяц года.
  • «13» — день месяца.
  • «2025» — год

Выход:

1760328000

Справочник по формату даты PHP

В таблицах ниже показаны распространенные символы форматирования, используемые при работе с функциями работы с датами в PHP.

Параметры времени

Параметр Описание Пример
"Р" Возвращает полную дату и время
<?php
echo date("r");
?>
«а», «А» Возвращает значение текущего времени: am или pm, AM или PM соответственно.
<?php
echo date("a");
echo date("A");
?>
"гарантированная победа" Возвращает час без ведущих нулей [от 1 до 12], [от 0 до 23] соответственно.
<?php
echo date("g");
echo date("G");
?>
«h», «H» Возвращает час с ведущими нулями [01–12] и [00–23] соответственно.
<?php
echo date("h");
echo date("H");
?>
"является" Возвращает минуты/секунды с ведущими нулями [от 00 до 59]
<?php
echo date("i");
echo date("s");
?>

Параметры дня

Параметр Описание Пример
«Д» Возвращает день месяца с ведущими нулями [от 01 до 31]
<?php
echo date("d");
?>
«Дж» Возвращает день месяца без ведущих нулей [от 1 до 31]
<?php
echo date("j");
?>
«D» Возвращает первые 3 буквы названия дня недели [с воскресенья по субботу].
<?php
echo date("D");
?>
«L» Возвращает название дня недели [с воскресенья по субботу].
<?php
echo date("l");
?>
«ж» Возвращает день недели без ведущих нулей [от 0 до 6]; воскресенье обозначается нулем (0), а суббота — шестью (6).
<?php
echo date("w");
?>
"Z" Возвращает день года без пробелов [от 0 до 365]
<?php
echo date("z");
?>

Параметры месяца

Параметр Описание Пример
«М» Возвращает номер месяца с ведущими нулями [от 01 до 12]
<?php
echo date("m");
?>
«Н» Возвращает номер месяца без ведущих нулей [от 1 до 12]
<?php
echo date("n");
?>
"М" Возвращает первые 3 буквы названия месяца [с января по декабрь]
<?php
echo date("M");
?>
"F" Возвращает название месяца [с января по декабрь]
<?php
echo date("F");
?>
«Т» Возвращает количество дней в месяце [от 28 до 31]
<?php
echo date("t");
?>

Параметры года

Параметр Описание Пример
"L" Возвращает 1, если год високосный, и 0, если год не високосный.
<?php
echo date("L");
?>
"Y" Возвращает четырехзначный формат года.
<?php
echo date("Y");
?>
"Y" Возвращает двухзначный формат года (от 00 до 99).
<?php
echo date("y");
?>

Часто задаваемые вопросы (FAQ)

Функция `date()` — это простая процедурная функция, которая форматирует метку времени. Класс `DateTime` является объектно-ориентированным и поддерживает арифметические операции, сравнение, часовые пояса и неизменяемость, что делает его более подходящим для сложной логики работы с датами в больших приложениях.

Используйте функцию strtotime(), которая считывает данные в форматах типа '2025-10-13' или 'next'. Mondayи возвращает метку времени Unix. Для строгого анализа известного формата DateTime::createFromFormat безопаснее, поскольку он явно выдает ошибку при недопустимом вводе.

Создайте два объекта DateTime и вызовите метод diff(), который вернет объект DateInterval. Затем вы можете прочитать количество дней, месяцев или лет, например, $start->diff($end)->days, чтобы получить общее количество дней между датами.

Да. Опишите формат входных и выходных данных, и ИИ сможет генерировать код date(), DateTime или strtotime, включая добавление интервалов или преобразование часовых поясов. Протестируйте его на крайних случаях, таких как високосные годы и конечные месяцы.

Да. Искусственный интеллект может обнаружить отсутствие вызова функции date_default_timezone_set, несоответствие часовых поясов сервера и дисплея или проблемы, связанные с переходом на летнее время, а затем рекомендовать использовать DateTime с указанием часовых поясов, чтобы сделать поведение предсказуемым.

Подведем итог этой публикации следующим образом: