在减去之后,我努力在日期格式中得到日期 两个日期但没有得到正确的结果,结果是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);
答案 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);