Функции работы с датой и временем

Очень часто программисту приходится работать с датой и временем, какие же функции могут помочь ему в этом? Я наиболее часто пользуюсь 3-мя:

- time
- date
- strtotime

Давайте рассмотрим каждую из этих функций по порядку. Функция time возвращает количество секунд прошедшее сначала эпохи Unix. (01.01.1970)
Т.е. если выполнить
<?php
echo time();
?>
На данный момент выведет вот такое число 1251829409. Столько секунд прошло с первого января 1970 года.
Функция date имеет гораздо более широкий функционал нежели функция time. Данный оператор форматирует дату так какмы того хотим, кроме того дополнительным параметром можно передавать любое значение timestamp в результате то значение, которое было передано нами будет отформатировано. Приведу простой пример:
<?php
echo date('d.m.y',1251829409);
?>
Данный пример выведет 01.09.09 т.е. ‘d’ это дни с ведущими нулями, m-номер месяца с ведущим нулем и ‘y’ две цифры номера года. Если второго параметра (timestamp времени) функция не имеет, то date возвращает время на настоящий момент.
<?php
echo date('d.m.y'); //выведет дату когда запускался скрипт
?>
Символ в строке format Описание Пример возвращаемого значения
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, если дата соответствует летнему времени, иначе 0 otherwise.
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 символа st, nd, rd или
th. Применяется совместно с j
t Количество дней в месяце От 28 до 31
T Временная зона на сервере Примеры: EST, MDT …
U Количество секунд, прошедших с начала Эпохи Unix (The Unix
Epoch, 1 января 1970, 00:00:00 GMT) См. также time()
w Порядковый номер дня недели От 0 (воскресенье) до 6 (суббота)
W Порядковый номер недели года по ISO-8601, первый день недели – понедельник (добавлено в PHP 4.1.0) Например: 42 (42-я неделя года)
Y Порядковый номер года, 4 цифры Примеры: 1999, 2003
y Номер года, 2 цифры Примеры: 99, 03
z Порядковый номер дня в году (нумерация с 0) От 0 до 365
Z Смещение временной зоны в секундах. Для временных зон
западнее UTC это отрицательное число, восточнее UTC – положительное. От -43200 до 43200
Ну и в заключении рассмотрим еще одну функцию работы с датой и временем strtotime. Данная функция преобразует строку даты на английском языке в timestamp.
Пример:

<?php
echo strtotime("now"), "\n";
?>
Напомню что это далеко не все функции работы с датой и временем в php. Советую почитать официальную инструкцию чтобы знать большеsmile

URL: https://visavi.net/articles/53