Достаточно часто при разработке приложений на php, нам бывает необходимо вычислить разницу между двумя датами в днях, часах, секундах и т.д. Посчитать сколько дней осталось до какой либо даты, или же просто вычислить дату которая была несколько дней назад. Например нужно узнать бывает какая была дата неделю назад. Решил написать небольшое руководство по тому как можно легко рассчитать.
Итак сначала надо получить текущую дату в секундах. Для этих нужд у нас имеется функция time().
Далее предположим нам надо отсчитать 15 дней до текущей даты.
Получим текущую дату
$current_date = time();
Теперь узнаем количество секунд содержащихся в 15 сутках.
$day_sec = 15*24*60*60 // мы умножили 15 дней на 24 часа, на 60 минут и их на 60 секунд, что содержатся в каждой секунде
Теперь отнимем от текущей даты эти 15 дней в секундах и получим дату в секундах которую надо преобразовать в нормальный вид.
$date = $current_date - $day_sec; echo date("Y-m-d",$date);
Теперь предположим что нам необходимо посчитать количество дней между двумя датами.
Для этого нам необходимо перевести даты в секунды. Для этого у нас есть функция strtotime()
$date1 = strtotime("2012-01-03 15:10:03"); $date2 = strtotime("2012-02-01 00:12:03");
$date1 — это первая дата и соответственно $date2 вторая дата между которыми мы будем находить количество дней.
Теперь вычтем 1-ю дату из второй и получим разницу между ними в секундах.
$diff_in_sec = $date2-$date1;
Ну а теперь осталось преобразовать получившиеся секунды в дни
$days = $diff_in_sec/(60*60*24); // делим на количество секунд в одном дне echo (int)$days; // Получаем только дни.
В результате у нас получилось 28 полных дней.
Надеюсь данная статья оказалась вам полезна.
Спасибо большое! Это то что мне нужно! Так держать!