PHP

Разница дат (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)
Добавлено: 21 Августа 2013 09:44:04 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...