Разница дат (PHP)
Для того что бы посчитать разницу между двумя датами в PHP, нужно обе даты перевести в секунды при помощи функции int strtotime(string time [, int now]) , и вычислить разницу. Результат и будет разницей.
Функция date_diff()
Напишем функцию int date_diff($date1, $date2) , которая будет принимать два параметра (дата 1 и дата 2) и возвращать разницу в секундах.
Пример
В приведенном примере, обрабатывается несколько вариантов форматов дат.
‘; $date1 = ’10 September 2010′; $date2 = ’29 September 2009′; echo date_diff($date1, $date2).’ сек.
‘; $date1 = ‘next Thursday’; $date2 = ‘last Monday’; echo date_diff($date1, $date2).’ сек.
‘; $date1 = ‘now’; $date2 = ‘2011-01-01 00:00:01′; // этот результат будет всегда разным echo date_diff($date1, $date2).’ сек.
‘; ?>?php>
Результат
41705135 сек.
29894400 сек.
864000 сек.
10273762 сек.
Послесловие
Если хотите секунды преобразовать в нормальную дату, то прочитайте статью: Секунды в дни-часы-минуты (PHP)
Категории
Читайте также
- Количество секунд между датами (PHP)
- Количество минут между датами (PHP)
- Количество дней между датами (PHP)
- Количество часов между датами (PHP)
- Посчитать сколько времени прошло (PHP)
- Время выполнения скрипта (PHP)
- Количество секунд от начала дня (PHP)
- Как получить TIMESTAMP дня текущей недели (PHP)
- Преобразовать дату в секунды (PHP)
- Установить часовой пояс (PHP)
- Дата вчера сегодня завтра (PHP)
- Название предыдущего месяца (PHP)
Комментарии
Вход на сайт
Введите данные указанные при регистрации:
Социальные сети
Вы можете быстро войти через социальные сети:
date_diff
Возвращает разницу между двумя DateTimeInterface объектами.
Список параметров
Дата и время для сравнения.
Используется, чтобы вернуть абсолютную разницу.
Возвращаемые значения
DateInterval объект представляет разницу между двумя датами или FALSE в случае возникновения ошибки.
Примеры
Пример #1 Пример использования DateTime::diff()
$datetime1 = new DateTime ( ‘2009-10-11’ );
$datetime2 = new DateTime ( ‘2009-10-13’ );
$interval = $datetime1 -> diff ( $datetime2 );
echo $interval -> format ( ‘%R%a дней’ );
?>?php
$datetime1 = date_create ( ‘2009-10-11’ );
$datetime2 = date_create ( ‘2009-10-13’ );
$interval = date_diff ( $datetime1 , $datetime2 );
echo $interval -> format ( ‘%R%a дней’ );
?>?php
Результат выполнения данных примеров:
Пример #2 Сравнение объектов DateTime
Замечание:
В PHP 5.2.2 объекты DateTime сравнивались при помощи операторов сравнения.
$date1 = new DateTime ( «now» );
$date2 = new DateTime ( «tomorrow» );
?php
var_dump ( $date1 == $date2 );
var_dump ( $date1 < $date2 );
var_dump ( $date1 > $date2 );
?>
Результат выполнения данного примера:
bool(false) bool(true) bool(false)
Смотрите также
- DateInterval::format() — Форматирует интервал
- DateTime::add() — Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
- DateTime::sub() — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime