Php 实时功能

Php 实时功能,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我已设置了Agotime功能。我只是想知道我应该用什么方法让我的时间更新活起来。很多人会说Ajax,但这会是服务器负担重吗?我需要每5秒换一次 还有,我该怎么做 function Agotime($date) { if(empty($date)) { return "No date provided"; } $periods = array("second", "minute", "hour",

我已设置了Agotime功能。我只是想知道我应该用什么方法让我的时间更新活起来。很多人会说Ajax,但这会是服务器负担重吗?我需要每5秒换一次

还有,我该怎么做

 function Agotime($date)

    {
        if(empty($date)) {
            return "No date provided";
        }

        $periods         = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
        $lengths         = array("60","60","24","7","4.35","12","10");

        $now             = time();
        $unix_date       = strtotime($date);

           // check validity of date
        if(empty($unix_date)) {    
            return "Bad date";
        }

        // is it future date or past date
        if($now > $unix_date) {    
            $difference     = $now - $unix_date;
            $tense         = "ago";

        } else {
            $difference     = $unix_date - $now;
            $tense         = "from now";
        }

        for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
            $difference /= $lengths[$j];
        }

        $difference = round($difference);

        if($difference != 1) {
            $periods[$j].= "s";
        }

        return "$difference $periods[$j] {$tense}";

    }
函数时间($date)
{
如果(空($日期)){
返回“未提供日期”;
}
$periods=数组(“秒”、“分钟”、“小时”、“日”、“周”、“月”、“年”、“十年”);
$length=数组(“60”、“60”、“24”、“7”、“4.35”、“12”、“10”);
$now=时间();
$unix_date=strottime($date);
//检查日期的有效性
如果(空($unix_date)){
返回“坏日期”;
}
//是未来日期还是过去日期
如果($now>$unix_date){
$difference=$now-$unix\u date;
$tense=“ago”;
}否则{
$difference=$unix_date-$now;
$tense=“从现在起”;
}
对于($j=0;$difference>=$length[$j]&&$j
您可以通过以下两种方式之一实现它

您可以按照建议使用AJAX,并查询PHP脚本的使用时间。然而,这可能会对请求数量造成很大影响

您还可以在Javascript中实现该函数,只需在加载时将时间戳传递给脚本。这样,您就不必向服务器发出任何请求,并且可以实时更新时间。当然,这是假设时间戳不变的


我个人会选择选项#2,因为它很容易用Javascript计算,避免了大量的网络流量。

最好的选择是传入递增日期,使用setTimeout并每5秒触发一次


然后,如果你想,你可以做一个“检查”来确保服务器上的时间与你在浏览器中的时间相匹配,使用ajax调用每隔X次更新来“重新同步”日期/时间

如果你想在浏览器上更新一些东西,你应该使用将是完美的:每5000毫秒自动调用一个函数。将
setInterval
的returnvalue分配给某个变量,不过:您需要它来
clearInterval
,只要您的服务器和客户端都不是以相对论的速度运行,就可以安全地假设时间以相同的速率流逝。为什么不在加载时向服务器询问一次时间,然后在客户机上重复计算时间,例如使用
setInterval
setTimeout
?如何将其写入函数?非常感谢您的帮助,我相信这相当简单,但从未使用过这种方法。