这是我的功能
<?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);
}
?>
感谢帮助人员
答案 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