如何使用PHP查找两个日期之间的时间差

问题描述:

如何使用PHP查找两个日期之间的时间差。如何使用PHP查找两个日期之间的时间差

例如我有两个日期:

开始日期:2010-07-30 00:00:00

结束日期:2010-07-30 00:00:00

在这种情况下,我该如何找到使用PHP的时差。

+0

可能重复的[如何计算使用PHP 2个日期之间的日期差(http://stackoverflow.com/questions/676824/how-to-calculate-the -date-difference-between-2-dates-using-php) – 2010-07-30 10:36:21

+2

但我需要如下:24小时3分5秒。 – Fero 2010-07-30 10:39:37

<?php 
$date1 = $deal_val_n['start_date']; 

$date2 = $deal_val_n['end_date']; 

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

$years = floor($diff/(365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 

$hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*60)); 

$minuts = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60); 

$seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minuts*60)); 
?> 

$d1 = strtotime('2010-07-30 00:00:00'); 
$d2 = strtotime('2010-07-30 00:00:02'); 

$diff = $d2 - $d1; 

echo $diff; 

你将有第二次在$差异变量

但我需要一个像下面:如果你使用PHP 5.3或更好的24小时3分钟5秒

(你应该是),你可以使用内置的DateTime类来产生一个DateInterval,它可以很容易地被formatted

$time_one = new DateTime('2010-07-29 12:43:54'); 
$time_two = new DateTime('2010-07-30 01:23:45'); 
$difference = $time_one->diff($time_two); 
echo $difference->format('%h hours %i minutes %s seconds'); 

DateTime在5.1中引入,但DateInterval是新的5.3。

尝试下面的代码,

<?php 
    $date1 = $deal_val_n['start_date']; 

    $date2 = $deal_val_n['end_date']; 

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

    $years = floor($diff/(365*60*60*24)); $months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24)); $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 

    $hours = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*60)); 

    $minuts = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60); 

    $seconds = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hours*60*60 - $minuts*60)); 
    ?>