«Дни между» должны возвращать 1 при переходе через дневную границу, даже в течение 24 часов - PullRequest
1 голос
/ 03 августа 2011

У меня есть текущая функция:

function getDaysBetween($start, $end) {
    $start = strtotime($start);
    $end = strtotime($end);
    $dateDiff = abs($end- $start);
    $daysBetween = floor($dateDiff/(60*60*24));
    return $daysBetween;
}

Функция выше возвращает дни между.

Так, например, 3 августа в 3:00 утра минус 2 августа в 11 вечера дает 0.

В этом случае я бы хотел вернуть 1, так как это разные дни. Как мне этого добиться?

Ответы [ 3 ]

2 голосов
/ 03 августа 2011

вместо

$start = strtotime($start);
$end = strtotime($end);

использование

$start = strtotime('00:00:00', strtotime($start));
$end = strtotime('00:00:00', strtotime($end));
1 голос
/ 03 августа 2011

Удалите время из ваших $ начала и $ конца , просто передайте дату. например 08.03.2011 вместо 03.08.2011: 03: 00: 00

0 голосов
/ 03 августа 2011
function getDaysBetween($start, $end) {
    $start = new DateTime($start);
    $end = new DateTime($end);
    $start->setTime(0,0,0);
    $end->setTime(0,0,0);
    $dateDiff = abs($end->getTimestamp() - $start->getTimestamp());
    $daysBetween = floor($dateDiff/(60*60*24));
    return $daysBetween;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...