0

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

3 回答 3

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 开始,这是应该的方式,因为它可以正确处理时区、夏令时(闰小时)和闰年。

于 2013-02-27T06:52:48.500 回答
2

你得到了正确的结果,因为减去两个日期结果是 7 天,它被添加到默认日期 1970-01-01

于 2013-02-27T06:53:24.383 回答
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);
于 2013-02-27T06:54:03.073 回答