PHP查找日期之间的差异

时间:2012-03-28 20:36:14

标签: php date

  

可能重复:
  How to calculate the difference between two dates using PHP?

我有一个PHP数组,以“2012-04-04”的形式保存电影发布日期作为示例。我将如何找到2个日期的差异。

例如 -

2012-04-04

2012-03-31

预期回复 - 5天差异

4 个答案:

答案 0 :(得分:1)

$d1 = new DateTime('2012-04-04');
$d2 = new DateTime('2012-03-31');

$interval = $d1->diff($d2);

echo $interval->format('%R%a days');

答案 1 :(得分:0)

我暂时写了这个函数来计算日期之间的差异。它将返回构成差异的所有日期测量数组。

function date_difference($date1, $date2) {
    $seconds_count = array(
        'year' => (365 * 24 * 60 * 60),
        'month' => (30 * 24 * 60 * 60),
        'day' => (24 * 60 * 60),
        'hour' => (60 * 60),
        'minute' => 60
    );

    $diff = abs($date1 - $date2);

    $years = floor($diff / $seconds_count['year']);
    $diff -=  ($years * $seconds_count['year']);

    $months = floor($diff / $seconds_count['month']);
    $diff -= ($months * $seconds_count['month']);

    $days = floor($diff / $seconds_count['day']);
    $diff -= ($days * $seconds_count['day']);

    $hours = floor($diff / $seconds_count['hour']);
    $diff -= ($hours * $seconds_count['hour']);

    $minutes = floor($diff / $seconds_count['minute']);
    $diff -= ($minutes * $seconds_count['minute']);

    $seconds = $diff;

    return array('seconds' => $seconds, 'minutes' => $minutes, 'hours' => $hours, 'days' => $days, 'months' => $months, 'years' => $years);
}

答案 2 :(得分:0)

使用strtotime()转换每个日期,这会为您提供一个unix时间戳(以秒为单位)。减去并查看两个日期之间的秒数。 60 * 60 * 24是一天的秒数,分数和舍入,你有一个大约的天数。

答案 3 :(得分:0)

您需要做的是将两个日期都转换为UTC格式(时间戳)。你可以减去彼此之间的差异,以秒为单位给你带来差异。

从那里简单地转换为天。

差异=差异/(60 * 60 * 24)。