В этой части я привожу два примера, которые могут пригодиться при работе с датами.
Как-то мне пришлось писать скрипт, который сидит в кроне и запускается в какое-то определённое время, для чистки логов на сервере. Задача стояла так, что в момент запуска скрипта мне нужно было удалять какие-то логи, например, двухмесячной давности из одного каталога и годовой давности из другого каталога. И тут я столкнулся с тем, что каждый раз перед запуском в скрипт приходилось вписывать дату старости логов, исходя из сегодняшней даты. Немного порывшись в мануале, я нашел решение. Для этого я использовал две функции языка:
Код:
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); //разница в днях
Надеюсь, что это кому-нибудь да пригодится.
Information
- Posted on 31.01.2010 22:14
- Просмотры: 1566