计算时差 (PHP)
这是我的函数
<?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);
}
?>
感谢大家的帮助
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 PHP 5.3,它带有内置的
date_diff ()
函数。这可能比尝试调试自己的函数更容易。
顺便说一句,您给出的代码:
永远不会起作用,因为您在时间字符串周围没有引号。我认为这是问题中的拼写错误,因为您声称该函数正在返回结果(即使它们不正确)
If you're using PHP 5.3, it comes with a built-in
date_diff()
function.It might be easier than trying to debug your own function.
By the way, the code you've given:
is never going to work, because you haven't got quotes aruond the time strings. I assume that's a typo in the question, since you claim that the function is returning results (even if they're incorrect)
这可能是时区问题。尝试使用 PHP 页面顶部的此函数设置时区:
http://www.php.net/manual/en/function.date-default-timezone-set.php
http://www.php.net/manual/en/timezones.php
This could be a timezone issue. Try setting the timezone with this function at the top of your PHP page:
http://www.php.net/manual/en/function.date-default-timezone-set.php
http://www.php.net/manual/en/timezones.php