找到与PHP的时间差异后格式化错误?

时间:2017-07-31 11:59:52

标签: php mysql

我希望用php找到两次之间的分钟。我已经从Stack上的其他问题中找到了答案并研究了PHP手册。在我的情况下,我得到一个存储在数据库中的DATETIME,并将其与NOW进行比较。我认为我的问题在于格式化问题。我会发布我放在一起的东西。

$order_start = $obj->order_start;   //getting detetime from database query  
$order_start = DateTime::createFromFormat('Y-m-d h:i:s', $order_start); 
$order_start= $order_start->format('Y-m-d h:i:s'); //format detetime 

$now_date = date('Y-m-d h:i:s'); //get now time 


$diff=date_diff($order_time,$now_date);  //get difference

$diff=$diff->format("%i minutes");  //format difference 

所以这里发生了什么。当我使用此行$diff=$diff->format("%i minutes");

时,页面停止工作

我的印象是我必须使用$order_start = DateTime::createFromFormat('Y-m-d h:i:s', $order_start);格式化数据库中的日期。

$ order_start echo' s 2017-07-31 01:44:25

$ now_date echo' s 2017-07-31 04:43:59

看起来格式相同,但可能不是?

现在,我试图了解这些时间之间的差异,并将结果格式化以显示分钟数。

提前感谢您的建议!如果这里有更好的文章,请告诉我。

我试过了 Echo Difference in Two Times

我也读过这篇文章试图找出格式。 http://php.net/manual/en/dateinterval.format.php

My Order page

1 个答案:

答案 0 :(得分:0)

您可以将日期转换为timestamp并获取差异,然后相应地对其进行格式化。像这样使用

echo date('H:i:s',(strtotime($now_date)-strtotime($order_start)));

在你的情况下使用像这样

echo date('h:i:s',(strtotime("2017-07-31 01:44:25")-strtotime("2017-07-31 04:43:59")));