Разница дат (PHP)

Вступление

Для того что бы посчитать разницу между двумя датами в PHP, нужно обе даты перевести в секунды при помощи функции int strtotime(string time [, int now]), и вычислить разницу. Результат и будет разницей.

Функция date_diff()

Напишем функцию int date_diff($date1, $date2), которая будет принимать два параметра (дата 1 и дата 2) и возвращать разницу в секундах.

<?php /** * date_diff - функция вычисляет разницу между двумя датами в секундах * * @param string date1 - дата 1 * @param string date2 - дата 2 * * @return int - разница в секундах * * Дата должна быть определенного формата, * советую ознакомится с функций strtotime() * http://docs.php.net/manual/ru/function.strtotime.php * */ function date_diff($date1, $date2) { $diff = strtotime($date2) - strtotime($date1); return abs($diff); } ?>

Пример

В приведенном примере, обрабатывается несколько вариантов форматов дат.

<?php $date1 = '2009-01-21 18:45:10'; $date2 = '2010-05-19 12:30:45'; echo date_diff($date1, $date2).' сек.<br>'; $date1 = '10 September 2010'; $date2 = '29 September 2009'; echo date_diff($date1, $date2).' сек.<br>'; $date1 = 'next Thursday'; $date2 = 'last Monday'; echo date_diff($date1, $date2).' сек.<br>'; $date1 = 'now'; $date2 = '2011-01-01 00:00:01'; // этот результат будет всегда разным echo date_diff($date1, $date2).' сек.<br>'; ?>

Результат

41705135 сек.
29894400 сек.
864000 сек.
10273762 сек.

Послесловие

Если хотите секунды преобразовать в нормальную дату, то прочитайте статью: Секунды в дни-часы-минуты (PHP)

Категории

ПрограммированиеPHPДата и время в PHPДата и время

Читайте также

Комментарии