“天之间”应该在超过一天的边界时返回1,即使在24小时内也是如此

时间:2011-08-03 11:08:23

标签: php datetime

我有当前的功能:

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

上面的函数确实返回了它们之间的日子。

因此,例如,8月3日上午3点减去8月2日晚上11点给出0.

在这种情况下,我希望它返回1,因为这些是不同的日子。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

而不是

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

使用

$start = strtotime('00:00:00', strtotime($start));
$end = strtotime('00:00:00', strtotime($end));

答案 1 :(得分:1)

$ start $ end 中删除时间,只需传递日期即可。例如03/08/2011而不是03/08/2011:03:00:00

答案 2 :(得分:0)

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;
}