Статья
Версия для печати
Обсудить на форуме
PHP. Полезные скрипты (часть 4)

В этой части я привожу два примера, которые могут пригодиться при работе с датами.

Как-то мне пришлось писать скрипт, который сидит в кроне и запускается в какое-то определённое время, для чистки логов на сервере. Задача стояла так, что в момент запуска скрипта мне нужно было удалять какие-то логи, например, двухмесячной давности из одного каталога и годовой давности из другого каталога. И тут я столкнулся с тем, что каждый раз перед запуском в скрипт приходилось вписывать дату старости логов, исходя из сегодняшней даты. Немного порывшись в мануале, я нашел решение. Для этого я использовал две функции языка:
Код:
date()
и
strtotime()

Допустим, нам надо получить дату, меньшую, чем дата запуска, на два месяца. Пишем:
Код:
$twomonthsago = date("Y-m-d", strtotime ("-2 month"));
Получим дату на два месяца раньше от текущей

На год назад:
Код:
$oneyearago = date("Y-m-d", strtotime ("-1 year"));

Также можно получить и дату вперёд:
Код:
date("Y-m-d", strtotime("+1 week"));

Также можно задавать промежуток не только по дням, но и по часам, минутам и секундам:
Код:
date("Y-m-d", strtotime("+1 week 2 days 4 hours 2 seconds"));

Ещё мне как-то понадобилось определять разницу между двумя датами. И в итоге у меня вышло вот что:
Код:
$current_date = mktime (0,0,0,date("m") ,date("d"),date("Y")); //дата сегодня
$old_date = mktime (0,0,0,11,25,2004); //2004.11.25
$difference = ($current_date - $old_date); //разница в секундах
$difference_in_days = ($difference / 86400); //разница в днях

Надеюсь, что это кому-нибудь да пригодится.

P.S. Все Ваши замечания и пожелания прошу высказывать в нашем форуме. Вот по этой ссылке: https://forum.shelek.ru/index.php/topic,6082.0.html

МОРОЗ
Версия для печати
Обсудить на форуме