Время и дата на PHP как с этим работать на примерах
Работа с датой и временем в PHP одна из самых важных и частых задач при разработке какого либо проекта. Применяется данный функционал для разных задач, например, для записи логов, отметки публикации поста, планирование задач и т.д. и т.п. Кто то выводит время на php на своем сайте, для показа времени своим посетителям в нескольких часовых поясах. С такой же легкостью выводится и дата на php, в любом удобном месте и формате.
Как вывести текущее время на PHP
Самый простой способ вывода времени на php — это воспользоваться функцией date(), в которую передать некоторые параметры для задания формата времени.
<?php
echo date("H:i:s");
?>
Объясняем что за параметры передавались:
- H — часы в 24 часовом формате.
- i — минуты.
- s — секунды.
Таким образом вы получаете текущее серверное время. То есть, время на которое настроен ваш сервер, на котором исполняется скрипт.
Как выводится дата на PHP
Для того чтоб вывести дату на php используется та же самая функция date(), в которую нужно передать данные уже другого формата.
<?php
echo date("d-m-Y");
?>
Объясняем что за параметры передавались:
- d — день (число).
- m — месяц.
- Y — год.
Все форматы даты и времени на PHP
Для более понятного примера работы с датой и временем, приводим в пример таблицу с параметрами:
| Символ | Описание | Пример |
|---|---|---|
d |
День месяца | 12 |
m |
Месяц (числом) | 11 |
Y |
Год (4 цифры) | 2025 |
H |
Часы (24-часовой формат) | 14 |
i |
Минуты | 37 |
s |
Секунды | 00 |
Установка часового пояса на PHP
PHP использует по умолчанию время сервера, то есть, часовой пояс в котором физически находится сервер и/или который сохранен в его настройках. Для того чтоб изменить часовой пояс в своем скрипте, используется функция date_default_timezone_set().
<?php
date_default_timezone_set("Europe/Moscow");
echo date("Y-m-d H:i:s");
?>
Теперь все функции связанные с выводом даты и времени будут выводить время и дату согласно Московскому часовому поясу.
Как получить метку времени на PHP
Метка времени в php — это количество секунд прошедших с 1 января 1970 года. Получить эту метку можно использовав функцию time(). Нужно это чаще всего для вычисления промежутка времени для различных задач. Промежуток в секундах можно перевести в минуты, часы и т.д.
<?php echo time(); ?>
Как преобразовать метку времени в дату
Выше приведен пример как получить метку времени, сейчас покажем как эту метку в секундах перевести в конкретную дату и время.
<?php
$timestamp = 1731422300;
echo date("d.m.Y H:i:s", $timestamp);
?>
Как добавить или вычесть время в PHP
Для более удобного вычисления времени используется объект класса DateTime(). Например, чтоб вычислить когда пользователь был на сайте последний раз. Что такое объекты и классы мы уже рассказывали в предыдущей статье про ООП в PHP.
<?php
$date = new DateTime("2025-11-12 14:00:00");
$date->modify("+2 days");
echo $date->format("d.m.Y H:i:s");
?>
Таким образом мы прибавили 2 дня к передаваемой в объект дате. Можно использовать примерно такие данные для регулировки даты: +1 day, -4 day, +1 month, -15 minutes.
Разница между датами
Для более быстрого вычисления разницы между датами можно использовать следующий код:
<?php
$start = new DateTime("2025-11-01");
$end = new DateTime("2025-11-12");
$diff = $start->diff($end);
echo $diff->days . " дней прошло.";
?>
Функции для работы с датой и временем на PHP
Запомните эти функции для работы с датой и временем, они вам значительно помогут в дальнейшей работе с PHP.
| Функция | Назначение |
|---|---|
date() |
Форматирует дату и время |
time() |
Возвращает текущее Unix-время |
strtotime() |
Преобразует строку в timestamp |
date_create() |
Создаёт объект даты |
date_format() |
Форматирует объект даты |
date_modify() |
Меняет дату (добавляет/отнимает время) |
date_diff() |
Возвращает разницу между двумя датами |
date_default_timezone_set() |
Устанавливает часовой пояс |