获取日期之间的差异返回零

我在'Ymd H:i:s'中有一个日期时间,并且我试图将当前日期与定义日期+1天相减,以小时,分钟和秒计算剩余时间:

$time = '2017-10-05 14:54:03';
$now =  date('Y-m-d H:i:s');
$endTransaction = date('Y-m-d H:i:s', strtotime($time. ' + 1 day'));
$dteDiff  = $endTransaction - $now;
echo $dteDiff;

但我总是得到0作为结果


你做错了。 date函数返回字符串,所以PHP不能比较任何东西。 改为使用DateTime类。 它的diff方法返回DateInterval对象的一些公共属性,例如days属性等等,这是两个日期之间天数的正整数(舍入):

$now = new DateTime();
$endTransaction = (new DateTime('2017-12-05 14:54:03'))->modify('+1 day');

$diff = $endTransaction->diff($now);

printf(
    'Difference in days: %d, hours: %d, minutes: %d, seconds: %d',
     $diff->days,
     $diff->h,
     $diff->m,
     $diff->s
);

你可能需要使用这个date_diff

    $time = '2017-10-05 14:54:03';
    $now =  date_create(date('Y-m-d H:i:s'));
    $endTransaction = date_create(date('Y-m-d H:i:s', strtotime($time. ' + 1 day')));
    $dteDiff  = date_diff($now, $endTransaction);
    $date = new DateTime($dteDiff);

    $result = $date->format('Y-m-d H:i:s');

根据上述描述,请尝试执行以下代码片段作为解决方案。

    $time = '2017-10-05 14:54:03';
    $now =  strtotime(date('Y-m-d H:i:s'));
    $endTransaction = strtotime(date('Y-m-d H:i:s', strtotime($time. ' + 1 day')));
    $dteDiff  = ($endTransaction - $now)/(24*60*60);
    echo round($dteDiff);
链接地址: http://www.djcxy.com/p/10121.html

上一篇: Get difference between date returns zero

下一篇: PHP date() and time() ahead of server by about 3 minutes