如何在php中查找2个日期之间的时差

时间:2012-11-05 05:56:08

标签: php

我希望以分钟为单位获得2个日期之间的时差。这两个日期采用以下格式

date1='05-11-2012 11:25:00'
date2='06-11-2012 17:45:00'

4 个答案:

答案 0 :(得分:2)

$datetime1 = new DateTime('05-11-2012 11:25:00');
$datetime2 = new DateTime('06-11-2012 17:45:00');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days'); //return +1 days
//or
$datetime1 = date_create('05-11-2012 11:25:00');
$datetime2 = date_create('06-11-2012 17:45:00');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days'); //return +1 days

for php< 5.3

$date1 = '05-11-2012 11:25:00';
$date2 = '06-11-2012 17:45:00';
$diff = floor(abs( strtotime( $date1 ) - strtotime( $date2 ) )/(60*60*24));
printf("%d days\n", $diff); //return 1 days

答案 1 :(得分:1)

<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');
?>

如需进一步参考,请访问以下链接 http://php.net/manual/en/datetime.diff.php

答案 2 :(得分:1)

您忽略了表示您希望表达时差的格式。如果您愿意在几秒钟内(很容易转换)工作,您可以简单地将每个日期转换为时间戳然后取绝对差值使用基本数学。例如,给$ date1 = '05 -11-2012 11:25:00'和$ date2 = '06 -11-2012 17:45:00':

$diff_seconds = abs( strtotime( $date1 ) - strtotime( $date2 ) );

你可以用结果做任何你喜欢的事。

答案 3 :(得分:0)

$ start_time = strtotime(“2012-10-12 11:35:00”);

$ end_time = strtotime(“2012-10-13 12:42:50”);

echo round(abs($ end_time - $ start_time)/ 60,2)。 “分钟”;

MINUTES中的两个日期不同。