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

时间:2010-07-30 10:35:19

标签: php datetime

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

例如,我有两个日期:

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

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

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

4 个答案:

答案 0 :(得分:7)

  

但我需要跟随:24小时3分5秒

如果你使用的是PHP 5.3或更高版本(你应该使用的话),你可以使用内置的DateTime类来生成DateInterval,它可以很容易地formatted。< / p>

$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的新功能。

答案 1 :(得分:4)

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

$diff = $d2 - $d1;

echo $diff;

你将在$ diff变量

中获得第二名

答案 2 :(得分:2)

<?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));
?>

答案 3 :(得分:0)

尝试以下代码,

<?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));
    ?>