[09:33]
[🔒]
✪
Статья
Дата и время в PHP
Категории: Программир.; WEB технологии;
В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.
PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:
time()
Возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX).
getdate( )
Считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:
$d = getdate(); // использовано текущее время foreach ( $d as $key => $val ) echo "$key = $val "; echo "Сегодня: $d[mday].$d[mon].$d[year]";
РЕЗУЛЬТАТ ПРИМЕРА 1:
seconds = 49minutes = 15hours = 9mday = 29wday = 5mon = 8year = 2025yday = 240weekday = Fridaymonth = August0 = 1756448149
Сегодня: 29.8.2025
date()
Форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:
Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту "\". Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку "n", то надо ввести "\\n", поскольку "\n" является символом новой строки.
date("Сегодня d.m.y H:i");
РЕЗУЛЬТАТ ПРИМЕРА 2:
Сегодня 29.08.25 09:15
mktime()
Возвращает абсолютное время, которое затем можно использовать с функциями date() или getdate(). Принимает до шести целочисленных аргументов в следующем порядке:часыминутысекундымесяцдень месяцагод
date( "j F Y, \a\\t g.i a, l", mktime( 13, 30, 0, 1, 22, 1971 ) );
РЕЗУЛЬТАТ ПРИМЕРА 3:
22 January 1971, at 1.30 pm, Friday
checkdate()
Проверка правильности даты. Аргументы: месяц, день, год. Возвращает true, если дата правильная, т.е. месяц - целое число от 1 до 12;день - целое число, не превышающее общего количества дней в данном месяце. При этом високосные годы обрабатываются корректно;год - целое число от 1 до 32767.Например:
if ( !checkdate( $month, 1, $year ) ) { $d = getdate(); $month = $d[mon]; $year = $d[year];}
Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.
strftime()
Формирование локальной даты и времени.Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. При этом названия месяцев и дней недели извлекается из локали, выбранной с помощью функции setlocate(). Строка формата может содержать следующие коды:
Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку.
echo strftime("%A %d %B %Y %H:%M "); //error_reporting(E_ALL & ~E_WARNING); //setlocale(LC_ALL,''); echo strftime("Сегодня %A %d %B %Y %X "); echo strftime("%Z ");
РЕЗУЛЬТАТ ПРИМЕРА 4:
Friday 29 August 2025 09:15Сегодня Friday 29 August 2025 09:15:49MSK
date("l dS F Y h:i:s A") :
Friday 29th August 2025 09:15:49 AM
date("Сегодня d.m.Y") :
Сегодня 29.08.2025
date("Этот файл датирован d.m.Y", filectime(__FILE__)) :
Этот файл датирован 19.02.2025
// Активизируем текущую локаль (иначе дата будет на английском). setlocale(LC_ALL, ''); // Выводим 2 предложения. echo strftime("%B %Y года, %d число. Был %A, часы показывали %H:%M.");
August 2025 года, 29 число. Был Friday, часы показывали 09:15.
Вчерашний день:
date("Y-m-d", strtotime("-1 day"));
2025-08-28
Найти ближайший рабочий день:
echo "Следующий рабочий день: ". date("d.m.Y",(intval(date("w")==0 ? strtotime("next day") : (intval(date("w")==6 ? strtotime("+2 day") : strtotime("now") )))));
Ближайший рабочий день: 29.08.2025
Чтобы написать комментарий нужно, зарегистрироваться
Голосования и тесты: 0