Php 实时功能
我已设置了Agotime功能。我只是想知道我应该用什么方法让我的时间更新活起来。很多人会说Ajax,但这会是服务器负担重吗?我需要每5秒换一次 还有,我该怎么做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",
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
?如何将其写入函数?非常感谢您的帮助,我相信这相当简单,但从未使用过这种方法。