时间格式增加六个小时

时间:2014-02-15 18:57:26

标签: php apache

我在计算两次之间的差异时遇到了问题。这是我的代码。

<?php
$Now = date('h:i:s');
echo 'Now is: '. $Now . '<br>';
$time1 = strtotime('01:22:24');
$time2 = strtotime('01:28:24');
$diff = $time2 - $time1;
echo 'Time 1: '.date('h:i:s', $time1).'<br>';
echo 'Time 2: '.date('h:i:s', $time2).'<br>';
if($diff){echo 'Difference: '.date('h:i:s', $diff);
}else{echo 'No Difference.';}
?>

它输出的是

现在是:03:07:01 时间1:01:22:24 时间2:01:28:24 差异:06:06:00

时间“现在是:”是正确的时间。我的php.ini中的时区设置为US / Central,我甚至尝试过America / Chicago,但没有帮助。我用apache 2.0运行PHP 5.3.5 有任何想法吗?感谢。

3 个答案:

答案 0 :(得分:0)

您尝试输出以秒表示的差异作为日期值。

差异应表示为:

if($diff){echo 'Difference: '.$diff . " seconds";

答案 1 :(得分:0)

$ diff的值是秒数。当您使用日期时,您可以将本地时间本地化为6小时。

改用gmdate。

http://uk1.php.net/gmdate

if($diff){echo 'Difference: '.gmdate('h:i:s', $diff);

答案 2 :(得分:0)

date函数将UNIX时间戳作为其第二个参数。 UNIX时间戳是自1970年1月1日以来的秒数。因此,当您将$diff作为第二个参数传递给date时,它会将其解释为自1970年1月1日以来的秒数,然后显示小时,分钟和该日期的日期组成部分!

您应该考虑使用http://us3.php.net/manual/en/class.datetime.phphttp://us3.php.net/manual/en/datetime.diff.php。以下是使用这些类的代码:

<?php

$time1 = new DateTime('01:22:24');
$time2 = new DateTime('01:28:24');

if ($time1 == $time2) {
    echo 'No Difference.';
} else {
    $diff = $time2->diff($time1);
    echo 'Difference: ' . $diff->format('%H:%I:%S');
}