Диапазон дат между двумя датами с данным временем - PullRequest
1 голос
/ 01 июня 2019

Мне нужно рассчитать количество дней между двумя указанными датами во времени.Например, даты между «06/01/2019 09:00» и «06/02/2019 22:00» для меня должны считаться 2 днями.Я попробовал приведенный ниже код, но не получил нужный мне результат.

Есть идеи как рассчитать результат?

$to = $_GET['end_date'];
$dteStart = new DateTime($from); 
$dteEnd   = new DateTime($to); 
$diff  = $dteStart->diff($dteEnd); 
print $diff->format("%H:%I");

Ответы [ 2 ]

1 голос
/ 01 июня 2019

Всего дней можно считать как:

print $diff->format('%D') + (0 < $diff->format('%H') ? 1 : 0);
// %D - gives you number of days between dates
// and if there're more hours between dates - add one day 

// probably you also want to consider minutes, 
// so as "1 day 10 minutes" diff should also be 
// considered as 2 days, then:
print $diff->format('%D') + ((0 < $diff->format('%H') || 0 < $diff->format('%I')) ? 1 : 0);
0 голосов
/ 01 июня 2019
$diff  = $dteStart->diff($dteEnd)->days + 1;
echo $diff;

Существует разница в один день, но я думаю, вы также хотите рассчитать текущий день.

...