PHP/Работа с датой и временем

Материал из Викиверситета
< PHP

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

Функция date[править]

Функция date() выводит текущие дату и время в заданном формате и имеет следующий синтаксис: date(format). Параметр format представляет собой шаблон, в соответствии с которым будет отформатирована и возвращена дата.

Таблица с расшифровкой некоторых символов в строке format[править]

Символ Описание Возвращаемое значение
День
d День месяца двумя цифрами от 01 до 31
D День недели в текстовом формате, 3 символа от Mon до Sun
z Порядковый номер дня в году (начиная с 0) От 0 до 365
Месяц
F Полное название месяца от January до December
m Порядковый номер месяца, 2 цифры от 01 до 12
M Сокращенное название месяца, 3 символа от Jan до Dec
Год
Y Порядковый номер года, 4 цифры Пример: 1999
y Порядковый номер года, 2 цифры Пример: 99
Время
a Ante meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистре am или pm
A Ante meridiem или Post meridiem в верхнем регистре AM или PM
g Часы в 12-часовом формате от 1 до 12
G Часы в 24-часовом формате от 0 до 23
h Часы в 12-часовом формате от 01 до 12
H Часы в 24-часовом формате, 2 цифры от 00 до 23
i Минуты, 2 цифры от 00 до 59
s Секунды, 2 цифры от 00 до 59

Пример:

<?php
echo "Текущая дата: " . date('d-m-Y');
?>

Запустите скрипт, чтобы увидеть результат работы.

Функция strtotime[править]

Функция strtotime() преобразует текстовое представление даты на английском языке в метку времени Unix. Параметром функции выступает строка с датой на английском языке, которая будет преобразована в надлежащий формат.

Пример использования:

<?php
$d=strtotime("May 25 2023");//получение метки времени Unix
echo date("Y-m-d D", $d);//форматированный вывод 
?>

Запустив данный скрипт, вы увидите результат работы.

Функция date_default_timezone_set[править]

Функция date_default_timezone_set() устанавливает часовой пояс по умолчанию для всех функций даты и времени в скрипте, что необходимо в случае, если сервер, где расположен сайт, настроен для другого часового пояса. В такой ситуации просто использовать функцию date() не удастся - возвращаемое значение будет отлично от реального времени часового пояса пользователя.

Часовые пояса

Имеет следующий синтаксис: date_default_timezone_set( string $timezone_identifier ), параметр timezone_identifier представляет собой идентификатор временной зоны.

Пример:

<?php
date_default_timezone_set('Europe/Moscow'); 
echo "Текущее время в Москве " . date("h:i:sa");
?>

Запустите скрипт, чтобы увидеть результат работы.


Упражнения[править]

1 Пользователь может узнать сегодняшнюю дату командой.

echo "Today is " . date("Y/m/d");
echo "Today is " . date(today);
echo "Today is " . date("Y-m-d");
echo "Today is " . date("Y.m.d");
echo "Today is " . date("m");
echo "Today is " . date();

2 Пользователь хочет узнать текущее время(часы в 24-часовом формате и минуты), какая команда может помочь ему.

echo "Now " . date("G");
echo "Now " . date("G-i");
echo "Now " . date("g:i");
echo "Now " . date("H:i");

3 Пользователь находится в Москве, но его друг в Африке. Разбудить друга звонком не хотелось бы. Как пользователь может узнать текущее время в другом часовом поясе?

echo "Now " . date("G-i");
Посмотреть по интернету текущее время в Африке.
Прибавить к своему времени 8 часов
date_default_timezone_set('Africa/Lagos'); echo "Now " . date("H:i");

4 Что будет отображено на экран в результате работы ?

$d=strtotime("May 25 2023");
echo date("Y", $d);

Y
2023
May
25

5 Что будет отображено на экран в результате работы ?

$d=strtotime("May 25 2023 +3 Months");
echo date("F", $d);

F
May
December
August


Ссылки[править]