计算时差(PHP)

时间:2011-07-19 14:42:07

标签: php function time strtotime

这是我的功能

<?php    
//Find time difference
    function timeDifference($timeEnd, $timeStart){
      $tResult = strtotime($timeEnd) - strtotime($timeStart);
      return date("G:i", $tResult-3600);
    }
?>

一个例子

<?php
   echo timeDifference(12:00:00,08:30:00);
?>

我的本​​地主机上的结果很好,但在我的服务器上在线显示21:30时它应该是3:30。怎么可能呢?

更新

这是我对php 5.2的解决方案

<?php
//Find time difference
function timeDifference($timeEnd, $timeStart){
  $tResult = round(abs(strtotime($timeEnd) - strtotime($timeStart)));
  return gmdate("G:i", $tResult);
}
?>

感谢帮助人员

2 个答案:

答案 0 :(得分:4)

如果你使用的是PHP 5.3,它会附带一个内置的date_diff()函数。

这可能比尝试调试自己的函数更容易。

顺便说一下,你给出的代码:

echo timeDifference(12:00:00,08:30:00);

永远不会起作用,因为你没有时间字符串的引号。我认为这是问题中的拼写错误,因为你声称函数正在返回结果(即使它们不正确)

答案 1 :(得分:0)

这可能是一个时区问题。尝试使用PHP页面顶部的此功能设置时区:

http://www.php.net/manual/en/function.date-default-timezone-set.php

http://www.php.net/manual/en/timezones.php