我有一个PHP脚本,它以HH:MM:SS格式收集数据库中的时间戳。然后我有一个PHP页面,通过AJAX每秒刷新一次,其目标是生成一个每秒提取PHP数据的脚本,这样我就可以做一些事情,比如显示一个倒数计时器。我试图以这种格式显示两次差异:HH:MM:SS。 IE:
$currentstampedtime = date("H:i:s", strtotime("now"));
制作:
19:29:34
(并正确计算我的ajax脚本,显示为时钟。
$gametimestamp = date("H:i:s", strtotime($gametime));
制作:
19:19:12
从我的数据库中提取时间戳,存储在$ gametime。
我想要做的就是像倒计时器一样实时地将这两个回声消除,假设ajax每秒刷新页面,就像它似乎正在做的那样。
$difference = ($currentstampedtime - $gametimestamp);
什么都不做。当我回应var时,
echo $difference;
我得到了
1
我没有尝试过任何工作。请帮忙。提前致谢。
答案 0 :(得分:1)
您可以使用php DateTime
对象来创建当前时间和目标时间。然后,使用DateTime对象的diff()
函数来获取差异并将其格式化为“00:00:00”。
即。 :
$now = new DateTime();
$target = DateTime::createFromFormat('H:i:s', "01:30:00");
$difference = $now->diff($target);
echo $difference->format("%H:%I:%S");
输出:
00:57:48
希望它有所帮助。
答案 1 :(得分:0)
这是你的答案:
<?php
$difference = time()-strtotime($gametime);
// You can retrieve the difference as time
echo $currentstampedtime = date("H:i:s", $difference);
?>
<强>更新强>
另一种解决方案
<?php
function get_time_difference($time1, $time2) {
$time1 = strtotime("1980-01-01 $time1");
$time2 = strtotime("1980-01-01 $time2");
if ($time2 < $time1) {
$time2 += 86400;
}
return date("H:i:s", strtotime("1980-01-01 00:00:00") + ($time2 - $time1));
}
echo get_time_difference("10:25:30", "22:40:59"); // 12:15:29
?>