Разница дат (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)
Комментарии:
Нету комментариев для вывода...