Как вывести текущую дату php

Дата и время в PHP

В распределенных системах, таких, как Интернет, время играет особую роль. Из-за незначительного расхождения системных часов игрок на рынке Forex может потерять десятки тысяч долларов в течение нескольких минут; система деловой разведки ошибется в составлении прогноза; серверы NNTP в процессе синхронизации потеряют важную информацию, нужную пользователю и т.д.

PHP-функции для работы с датой и временем

PHP содержит множество функций для работы с датой и временем. Наиболее употребимыми являются:

time() Возвращает текущее абсолютное время. Это число равно количеству секунд, которое прошло с полуночи 1 января 1970 года (с начала эпохи UNIX). getdate( ) Считывает информацию о дате и времени. Возвращает ассоциативный массив, содержащий информацию по заданному или по текущему (по умолчанию) времени. Массив содержит следующие элементы:

seconds Секунды (0-59)
minutes Минуты (0-59)
hours Часы (0-23)
mday День месяца (1-31)
wday День недели (0-6), начиная с воскресенья
mon Месяц (1-12)
year Год
yday День года (0-365)
weekday Название дня недели (например, Friday)
month Название месяца (например, January)
0 Абсолютное время

Пример 1

РЕЗУЛЬТАТ ПРИМЕРА 1:

seconds = 58
minutes = 36
hours = 19
mday = 3
wday = 3
mon = 11
year = 2021
yday = 306
weekday = Wednesday
month = November
0 = 1635957418
Сегодня: 3.11.2021

date() Форматирование даты и времени. Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. Строка формата может содержать следующие коды:

Читайте также:  При каком режиме стирать вязаные вещи
a Включено обозначение «am» или «pm»
A Включено обозначение «AM» или «PM»
d День месяца (01-31)
D Сокращенное название дня недели (три буквы)
F Полное название месяца
g Часы (12-часовой формат без ведущих нулей)
G Часы (24-часовой формат без ведущих нулей)
h Часы (12-часовой формат)
H Часы (24-часовой формат)
i Минуты (00-59)
j День месяца без ведущих нулей (1-31)
l Полное название дня недели
L Признак високосного года (0 или 1)
m Месяц (01-12)
M Сокращенное название месяца (три буквы)
n Месяц (1-12)
s Секунды (00-59)
t Количество дней в данном месяце (от 28 до 31)
U Абсолютное время
w Номер дня недели (0 — воскресенье, 6 — суббота)
y Год (два разряда)
Y Год (четыре разряда)
z День года (0-365)
Z Смещение часового пояса в секундах (от -43200 до 43200)

Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку. Если в строку формата нужно добавить символы, которые сами по себе являются кодами формата, то перед ними надо поставить обратную косую черту «\». Символы, которые становятся кодами формата при добавлении к ним обратной косой, нужно предварять двумя косыми. Например, если необходимо добавить в строку «n», то надо ввести «\\n», поскольку «\n» является символом новой строки.

Пример 2

РЕЗУЛЬТАТ ПРИМЕРА 2:

Сегодня 03.11.21 19:36

mktime() Возвращает абсолютное время, которое затем можно использовать с функциями date() или getdate() . Принимает до шести целочисленных аргументов в следующем порядке:

часы
минуты
секунды
месяц
день месяца
год

Пример 3

РЕЗУЛЬТАТ ПРИМЕРА 3:

22 January 1971, at 1.30 pm, Friday

checkdate() Проверка правильности даты. Аргументы: месяц, день, год. Возвращает true , если дата правильная, т.е.
месяц — целое число от 1 до 12;
день — целое число, не превышающее общего количества дней в данном месяце. При этом високосные годы обрабатываются корректно;
год — целое число от 1 до 32767.

Внимание! Дата может находиться в допустимом диапазоне, но остальные функции работы с датами не примут это значение. Так, нельзя использовать mktime() для годов до 1902, а также следует использовать ее осторожно для годов до 1970.

strftime() Формирование локальной даты и времени.
Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате. При этом названия месяцев и дней недели извлекается из локали, выбранной с помощью функции setlocate() . Строка формата может содержать следующие коды:

%a Сокращенное название дня недели
%A Полное название дня недели
%b Сокращенное название месяца
%B Полное название месяца
%c Предпочтительный формат даты и времени
%C Номер века
%d День месяца (1-31)
%D То же, что и %m/%d/%y
%e Месяц (1-12)
%h То же, что и %b
%H Часы (24-часовой формат)
%I Часы (12-часовой формат)
%j День года (0-365)
%m Месяц (1-12)
%M Минуты
%n Символ новой строки
%p Включено обозначение «am» или «pm»
%r Время с использованием a.m./p.m.-нотации
%R Время в 24-часовом формате
%S Секунды (00-59)
%t Символ табуляции
%T То же, что и %H:%M:%S
%u Номер дня недели (1 — понедельник, 7 — воскресенье)
%U Номер недели. Отсчет начинается с первого воскресенья года
%V Номер недели по ISO 8601:1988. Первая неделя должна иметь не менее четырех дней, а понедельник считается первым днем
%W Номер недели. Отсчет начинается с первого понедельника года
%w Номер дня недели (0 — воскресенье, 6 — суббота)
%x Предпочтительный формат даты без времени
%X Предпочтительный формат времени без даты
%y Год (два разряда)
%Y Год (четыре разряда)
%Z Часовой пояс (имя или сокращение)
%% Символ «%»

Любая другая информация, включенная в строку формата, будет вставлена в возвращаемую строку.

Пример 4

РЕЗУЛЬТАТ ПРИМЕРА 4:

Wednesday 03 November 2021 19:36
Сегодня Wednesday 03 November 2021 19:36:58
MSK

Источник

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

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

Для удобства работы с датами каждый язык программирования имеет свои специальные типы данных для хранения значения даты и времени. Чаще всего это числовое значение, либо целое, либо с плавающей точкой.

В PHP работа с датой чаще всего сталкивается с UNIX TIMESTAMP. Здесь время хранится целым числом. Исчисление времени начинается с 1 января 1970 года. Поэтому, например, дата и время 11.12.2014 19:40:00, будет представлено числом 1418316000. Эта цифра показывает, сколько секунд прошло с нулевой даты 1 января 1970 года, названой Эпохой Unix.

Пример php-страницы, предоставляющий возможности преобразования данных представлен на сайте в разделе программ программой «Преобразование формата даты и времени». Здесь можно сформировать нужную дату в формат UNIX TIMESTAMP, а так же привести этот формат в стандартный, понятный человеку вид.

Получение текущего времени и даты в PHP

Для получения текущего времени сервера используется функция

которая как раз вернет значение в формате unix timestamp.

На первый взгляд не очень удобный формат для человека, но, как известно, чем проще представление данных, тем быстрее выполняется обработка этих значений компьютером. Кроме того, хранение числа в базе данных намного экономичнее, чем какой-либо специальный формат. Так же, PHP работает со временем одинаково и на Unix и на Windows платформе, что обеспечивает возможность использовать код на любой из этих платформ.

Преобразование формата даты и времени в PHP

Простейший механизм, позволяющий преобразовать числовое значение даты на более понятные значения, предоставляется функцией:

Она возвращает ассоциативный массив, содержащий информацию о дате. Если параметр timestamp не указан, будут возвращены сведения о текущем времени. Этот массив содержит следующие значения:

seconds секунды (0-59)
minutes минуты (0-59)
hours часы (0-23)
mday день месяца (1-31)
wday день недели (0-6), начиная с воскресенья
mon месяц (1-12)
year год
yday день года (0-365)
weekday название дня недели (например, Monday)
month название месяца (например, January)
0 количество секунд, прошедших с начала Эпохи Unix

Полученный массив, позволяет вывести значения нужном виде:

Так же для преобразования формата даты и времени можно воспользоваться функцией:

Она предназначена для получения текущей даты unix timestamp в нужном формате. Строковый параметр $template определяет формат вывода. Параметром $unix_timestamp можно задать, с каким значением времени производится работа. Он необязательный, поэтому, если его не указать, будет использоваться текущая дата и время.

Формат задается следующими значениями:

a «до» и «после» полудня: «am» или «pm»
A «до» и «после» полудня заглавными буквами: «AM» или «PM»
d день месяца 2 цифрами (если меньше 10, на первом месте ноль) (от 01 до 31)
D день недели 3 буквами. Например, «Mon» (понедельник)
j день месяца, 1-2 цифры без начальных нулей (от 1 до 31)
F название месяца. Например, «January»
h час, 12-часовой формат (от 01 до 12)
H час, 24-часовой формат (от 00 до 23)
g час, 12-часовой формат без нулей (от 1 до 12)
G час, 24-часовой формат без нулей (от 0 до 23)
i минуты (от 00 до 59)
I (заглавная i) 1, если действует переход на летнее время, иначе 0
L 1, если год високосный, или 0 если не високосный
B время в формате Интернет-времени (альтернативной системы отсчета времени суток) (от 000 до 999)
T временная зона компьютера. Например, MDT
l (строчная L) день недели. Например, «Monday»
m месяц, две цифры с нулями (от 01 до 12)
n месяц, одна-две цифры без нулей (от 1 до 12)
M сокращенное наименование месяца. Например, «Jan»
t число дней в указанном месяце (от 28 до 31)
s секунды (от 0 до 59)
S англоязычный порядковый суффикс числа из двух букв («st», «nd», «rd» или «th»)
U целое число секунд, прошедших с момента начала эпохи UNIX
y год, цифровой, 2 цифры (14)
Y год, цифровой, 4 цифры (2014)
z порядковое число дня в году (от 0 до 365)
Z смешение временной зоны в секундах (от -43200 до 43200)
N порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье) в соответствии со стандартом ISO-8601, (добавлен в версии PHP 5.1.0)
w порядковый номер дня недели от 0 (воскресенье) до 6 (суббота)
W порядковый номер недели года в соответствии со стандартом ISO-8601; недели начинаются с понедельника (добавлено в версии PHP 4.1.0)
o номер года в соответствии со стандартом ISO-8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (добавлен в версии PHP 5.1.0)
e код шкалы временной зоны. Например: UTC, GMT, Atlantic/Azores (добавлен в версии PHP 5.1.0)
O разница с временем по Гринвичу, в часах. Например: +0200
P разница с временем по Гринвичу с двоеточием между часами и минутами. Например: +02:00 (добавлено в версии PHP 5.1.3)
c дата в формате стандарта ISO 8601. Например, 2014-12-12T15:19:21+00:00 (добавлено в PHP 5)
r дата в формате » RFC 2822. Например: Thu, 21 Dec 2000 16:01:07 +0200
U количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT)

Как видно из списка, с помощью этой функции можно получить очень много полезных данных о дате. Например:

Другие символы, входящие в шаблон, будут выведены в строке как есть. Если же потребуется ввести символ, который используется в функции как код формата, перед ними вставляется символ «\». Для значения «\n» (символ перехода на новую строку), следует указать «\\n». Таким образом, можно делать вывод целого сообщения, содержащего сведения о дате и времени:

Преобразование даты и времени в формат timestamp

Для обратного преобразования даты из стандартного формата в числовое значение timestamp применяется функция:

Функция mktime() возвращает значение времени Unix, соответствующую дате и времени, заданным аргументами. Например:

Следует внимательно относится к порядку аргументов функции: часы, минуты, секунды, месяц, день, год.

Кроме простого формирования значения даты в timestamp, функцию mktime() можно использовать для арифметически вычисления с датами. Для этого просто можно ввести необходимые аргументы. Например, если указать 14 месяц, то в итоговом значении, месяц будет 2-й, а значение года увеличится на единицу:

Аналогично можно поступать и с другими параметрами.

Проверка корректности даты в PHP

При работе с датами, особенно при формировании даты предложенной выше функцией mktime() необходимо учитывать корректность вводимой даты. Для этого в PHP используется функция:

Возвращает true если дата, заданная аргументами, является правильной; иначе возвращает false. Дата считается правильной, если:

— год в диапазоне от 1 до 32767;

— месяц в диапазоне от 1 до 12;

— день для заданного месяца с учетом високосного года указаны правильно.

Источник

Оцените статью