用php实现日期时差

用php实现日期时差,php,datetime,time,subtraction,Php,Datetime,Time,Subtraction,我看过一些关于这个的帖子,但是我仍然对它的工作原理有点困惑 我想比较两次。第一次是time NOW,第二次是来自数据库的datetime。我可以得到日、月、年的差异,但当我试图得到分、秒时,这些数字似乎不正确 以下是我的代码,用于获取以分钟和秒为单位的时间: $date1 = date('Y-m-d H:i:s'); $date2 = $blah['datetime']; //the variable here is in dateTime format coming from the data

我看过一些关于这个的帖子,但是我仍然对它的工作原理有点困惑

我想比较两次。第一次是time NOW,第二次是来自数据库的datetime。我可以得到日、月、年的差异,但当我试图得到分、秒时,这些数字似乎不正确

以下是我的代码,用于获取以分钟和秒为单位的时间:

$date1 = date('Y-m-d H:i:s');
$date2 = $blah['datetime']; //the variable here is in dateTime format coming from the database
$diff = abs(strtotime($date2) - strtotime($date1)); //Does this give the seconds?
$mins = floor($diff / 60);

到目前为止,它返回的值大约为560,尽管我在一分钟前(在数据库中)将该行添加到了表中。也许我误解了什么,或者错过了什么。如果你想让我澄清什么,请告诉我。谢谢

使用PHP和类,此计算非常简单


向我们显示
$date1
$date2
的值。$date1和$date2都具有相同的格式日期('Y-m-d H:i:s')$date1是现在的日期(当前时间),而$date2是过去存储的相同日期格式。你需要知道确切的日期和时间吗?尽管如此,日期如下:$date1=2013-05-11 21:55:19$date2=2013-05-11 12:49:12在我看来,这两个时间戳之间有560分钟……是的……我上面显示的代码给出的数字与你提到的大致相同。之前有人发布,$diff给了我毫秒数,所以我尝试将它除以1000,但是分钟数给了我0。
$date1 = new \DateTime();
$date2 = \DateTime::createFromFormat('Y-m-d H:i:s', $blah['datetime']);
$diff = $date1->diff($date2); // $diff is an Instance of DateInterval

$mins = ($diff->days * 60 * 24) + ($diff->h * 60) + $diff->i;