减去两个日期并以日期格式显示结果

时间:2013-02-27 06:49:41

标签: php datediff

在减去之后,我努力在日期格式中得到日期 两个日期但没有得到正确的结果,结果是1970-01-07 05:00:00但我需要结果2013-02-07 12:02:00

$start_date =strtotime('2013-02-13 12:02:00');
$end_date =strtotime('2013-02-20 12:02:00');
$total = ($start_date - $end_date);
echo date("Y-m-d H:i:s",$total);

3 个答案:

答案 0 :(得分:2)

从PHP 5.3起,您可以将DateTime::diff()方法与DateInterval类一起使用:

<?php

$start = new DateTime('2013-02-13 12:02:00');
$end   = new DateTime('2013-02-20 12:02:00');

$interval = $end->diff($start);
echo $interval->format('%Y-%M-%D %H:%I:%S');

此外,它是PHP5.3的假设方式,因为它可以正确处理时区,夏令时(闰小)和闰年。

答案 1 :(得分:2)

你得到正确的结果,因为扣除两个日期结果是7天后被添加到默认日期1970-01-01

答案 2 :(得分:0)

尝试以下代码

$date2 ='2013-02-13 12:02:00';
$date1 ='2013-02-20 12:02:00';

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

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

printf("%d years, %d months, %d days\n", $years, $months, $days);