DDR64.ru

Выделяем главное

Работа с датой в PHP

Для справки, напишу пару функций для получения даты и времени. Когда пишешь php код, работа с датой, является очень частым процессом.

Получим время в секундах

Получим дату по формату: День, Месяц, Год, Час, Минута, Секунда

Получим: 19.12.2018 7:37:33

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

Символ в строке Описание Пример возвращаемого значения
a Ante meridiem или Post meridiem в нижнем регистре am или pm
A Ante meridiem или Post meridiem в верхнем регистре AM или PM
B Время в стадарте Swatch Internet От 000 до 999
c Дата в формате ISO 8601 (добавлено в PHP 5) 2004-02-12T15:19:21+00:00
d День месяца, 2 цифры с ведущими нулями от 01 до 31
D Сокращенное наименование дня недели, 3 символа от Mon до Sun
F Полное наименование месяца, например January или March от January до December
g Часы в 12-часовом формате без ведущих нулей От 1 до 12
G Часы в 24-часовом формате без ведущих нулей От 0 до 23
h Часы в 12-часовом формате с ведущими нулями От 01 до 12
H Часы в 24-часовом формате с ведущими нулями От 00 до 23
i Минуты с ведущими нулями 00 to 59
I (заглавная i) Признак летнего времени 1, если дата соответствует летнему времени, иначе 0otherwise.
j День месяца без ведущих нулей От 1 до 31
l (строчная ‘L’) Полное наименование дня недели От Sunday до Saturday
L Признак високосного года 1, если год високосный, иначе 0.
m Порядковый номер месяца с ведущими нулями От 01 до 12
M Сокращенное наименование месяца, 3 символа От Jan до Dec
n Порядковый номер месяца без ведущих нулей От 1 до 12
O Разница с временем по Гринвичу в часах Например: +0200
r Дата в формате RFC 2822 Например: Thu, 21 Dec 2000 16:01:07 +0200
s Секунды с ведущими нулями От 00 до 59
S Английский суффикс порядкового числительного дня месяца, 2 символа stndrd или th. Применяется совместно с j
t Количество дней в месяце От 28 до 31
T Временная зона на сервере Примеры: ESTMDT …
U Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT)
w Порядковый номер дня недели От 0 (воскресенье) до 6 (суббота)
W Порядковый номер недели года по ISO-8601, первый день недели – понедельник (добавлено в PHP 4.1.0) Например: 42 (42-я неделя года)
Y Порядковый номер года, 4 цифры Примеры: 19992003
y Номер года, 2 цифры Примеры: 9903
z Порядковый номер дня в году (нумерация с 0) От 0 до 365
Z Смещение временной зоны в секундах. Для временных зон западнее UTC это отрицательное число, восточнее UTC – положительное. От -43200 до 43200

Есть еще другой вариант формирования даты.

Эта функция получает ассоциативный массив, где каждый из индексов отвечает за свой параметр

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

Индекс Описание Пример значения
seconds Секунды От 0 до 59
minutes Минуты От 0 до 59
hours Часы От 0 до 23
mday Порядковый номер дня месяца От 1 до 31
wday Порядковый номер дня От 0 (воскресенье) до 6 (суббота)
mon Порядковый номер месяца От 1 до 12
year Порядковый номер года, 4 цифры Примеры: 19992003
yday Порядковый номер дня в году (нумерация с 0) От 0 до 365
weekday Полное наименование дня недели От Sunday до Saturday
month Полное наименование месяца, например January или March от January до December
0 Колическтво секунд, прошедших с начала Эпохи Unix (The Unix Epoch), подобно значению, возвращаемому функцией time() и используемому функцией date(). Платформо-зависимое, в большинстве случаев от-2147483648 до 2147483647.

Иногда встречается, что дату в базе MySQL записывают не в поле Date, а в поле типа Int, и дата записывается в секундах. И чтобы получить вывод в читабельном варианте, можно использовать в запросе следующую конструкцию.

К примеру, дата у нас записана в поле mydate, таблицы users  типа INT, тогда наш запрос будет таким:

Еще есть одна рекомендация, это установка временной зоны, чтобы время соответствовало вашему региону

 

Оценить статью
(Пока оценок нет)

Добавить комментарий

Войти с помощью: