Посчитать разницу в датах и показать результат в днях

UDAV

Постоялец
Регистрация
22 Июн 2007
Сообщения
775
Реакции
153
Как посчитать разницу в датах и показать результат в днях?
Допустим из 10.03.2015 вычитаем 22.11.2011 = ххх Дней
 
PHP:
$ftime="10.03.2015";
$stime="22.11.2011";
$fetime=explode(".", $ftime);
$setime=explode(".", $stime);
$fmtime=mktime(0, 0, 0, $fetime[1], $fetime[0], $fetime[2]);
$smtime=mktime(0, 0, 0, $setime[1], $setime[0], $setime[2]);
$rtime=abs($fmtime-$smtime);
$dtime=ceil($rtime/86400);
echo $ftime." - ".$stime." = ".$dtime." дней";
 
  • Нравится
Реакции: UDAV
Вот туториал:
Скрытое содержимое доступно для зарегистрированных пользователей!
 
  • Нравится
Реакции: UDAV
dino, а что дописать чтобы в минус считало? Если из меньшего вычесть большее...
 
$rtime=$fmtime-$smtime;
 
  • Нравится
Реакции: UDAV
Чето я не догнал что тебе нужно...
В моем первом варианте обрабатывается модуль разности между датами и независимо от очередности дат, результат будет один и тот же:
22.11.2011 - 10.03.2015 = 1204 дней
10.03.2015 - 22.11.2011 = 1204 дней
во втором случае обрабатывается простая разность между датами и результат зависит от очередности дат:
22.11.2011 - 10.03.2015 = -1204 дней
10.03.2015 - 22.11.2011 = 1204 дней
покажи как должно быть по твоему?
 
dino, нужно как второй вариант, я что-то не пойму тогда куда ставить $rtime=$fmtime-$smtime; ?

а, все, полнял)) день города сказывается на работу))) Спасибо тебе dino!
 
  • Заблокирован
  • #10
Переводите обе даты в формат unix stamp с помощью ф-ии mktime()
Из одной даты вычитаем другую.
Получается разница во времени - в секундах.
делим значение на количество секунд в дне (60 * 60 * 24) - получаем разницу в днях.
Округляем в большую или меньшую степень (как вам нужнее) - и результат готов.

например:
$a=mktime (0,0,0,1,1,2011);
$b=mktime (0,0,0,5,2,2011);
echo $difference = intval(($b-$a)/(60 * 60 * 24));
 
Назад
Сверху