两次回声差异

时间:2017-02-26 20:06:16

标签: php time

我有一个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

我没有尝试过任何工作。请帮忙。提前致谢。

2 个答案:

答案 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
?>