php的日期时差

时间:2018-04-25 08:25:45

标签: php date

如何在两小时之间获得差异。 例如:

$data1 = '2018-04-24 02:30:00';
$date2 = now();

如何在$ date1和$ date2之间获得差异。

编辑:OP在评论中发布的代码

<?php //date_default_timezone_set('UTC+6'); 
$time1 = strtotime('2018-04-25 12:00:00'); 
$time2 = time(); 
echo $time2.'<br>'; 
echo date('Y-m-d h:i:s', $time2).'<br>'; 
echo ($time1-$time2)/3600; ?>

3 个答案:

答案 0 :(得分:1)

<?php

$datetime1 = new DateTime('2018-04-24 02:30:00');
$datetime2 = new DateTime(date('Y-m-d H:i:s'));
$interval = $datetime1->diff($datetime2);
echo $interval->format('%Y %m %d %H:%I:%S');

结果将是:

00 0 1 08:06:15

00 --> years
0  --> months
1  --> days 
08 --> hours
06 --> minutes
15 --> seconds

您可以根据需要进行修改,但我建议您至少保留几天,因为小时数可能相差几个小时,但天数可能相差很多天。

答案 1 :(得分:0)

您是否可以使用Carbon class为DateTime提供简单的PHP API扩展 Carbon

答案 2 :(得分:0)

$data1 = '2018-04-24 02:30:00';
$data2 = date('y-m-d H:i:s');

$formated_in = date('Y-m-d H:i:s', strtotime($data1));
$formated_out = date('Y-m-d H:i:s', strtotime($data2));

$formated_new_in = strtotime($formated_in);
$formated_new_out = strtotime($formated_out);

$sub_total = $formated_new_out - $formated_new_in;
$sub_total = gmdate("H:i", $sub_total);
echo $sub_total;