Вы можете авторизоваться через ВКонтакте, Фейсбук и оставить комментарий


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

Вступление

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

Функция date_diff()

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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);
}

?>

Пример

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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)

Опубликовано: 29 апреля 2011  ·  Автор: Артём Фёдоров  ·  14703 просмотра

Категория

ГлавнаяПрограммированиеPHPДата и времяРазница дат (PHP)

Чтобы оставить комментарий нужно авторизоваться на сайте
или войти через ВКонтакте или Фейсбук

Войти через ФейсбукВойти через Твиттер

Комментарии

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

© 2010-2017 expange.ru
При полном или частичном копировании статей сайта, ссылка на источник обязательна.

Хотите узнать больше информации, пишите на: artem@expange.ru

Полезное онлайн  ·  Новости  ·  Изображения  ·  Статьи по датам

О проекте  ·  Правила пользования  ·  Представительства

Благодарности и пожелания