PHP/Javascript定时器和计数器
概述:我需要一个计数器,可以计数从一个插入的数字,可以继续计数,而没有用户,并直观地显示计数,因为它发生在一个网站。在我离开这里的时候,我会努力解决这个问题。任何帮助都将不胜感激。我计划把它打包成Joomla的一个模块,并在不久的将来免费发布 输入为:PHP/Javascript定时器和计数器,php,javascript,time,mktime,Php,Javascript,Time,Mktime,概述:我需要一个计数器,可以计数从一个插入的数字,可以继续计数,而没有用户,并直观地显示计数,因为它发生在一个网站。在我离开这里的时候,我会努力解决这个问题。任何帮助都将不胜感激。我计划把它打包成Joomla的一个模块,并在不久的将来免费发布 输入为: 开始数量,以秒为单位的间隔要更新,速率要为每个 间歇 用于构建计时器的PHP类 class Counter { var $baserate; var $rate; var $start; var $secon
- 开始数量,以秒为单位的间隔要更新,速率要为每个 间歇
class Counter {
var $baserate;
var $rate;
var $start;
var $seconds;
var $now;
var $month;
var $day;
var $year;
var $saving;
var $growthrate;
function Counter($rate, $baserate,$seconds,$year,$day,$month)
{
$this->rate = $rate;
$this->base = $baserate;
$this->seconds = $seconds;
$this->year = $year;
$this->day = $day;
$this->month= $month;
$this->carbonsaving();
}
function carbonsaving()
{
$now = time();
$start = mktime(0,0,0,$this->month,$this->day,$this->year);
$growthrate = $this->rate * (60/$this->seconds);
$saving = round(((($now - $start) * $growthrate) + $this->base));
return $saving;
}
}
$count1 = new Counter(0,1, 2,2011,4,8);
$count2 = new Counter(15,1, 1,2011,1,8);
$width = 300;
$height = 350;
?>
Javascript设置网页更新的间隔,并调用函数获取初始值这些现在似乎不同步
var car1 = <?php print($count1->carbonsaving()); ?>;
var car2 = <?php print($count1->carbonsaving()); ?>;
function incs1()
{
car1 = car1 + <?php print($count1->rate);?> ;
document.getElementById("carb1").innerHTML=car1;
}
function incs2()
{
car2 = car2 + <?php print($count2->rate);?> ;
document.getElementById("carb2").innerHTML=car2;
}
setInterval('incs1()', <?php print($count1->seconds);?> *1000 );
setInterval('incs2()', <?php print($count2->seconds);?> *1000 );
var car1=;
var car2=;
函数incs1()
{
car1=car1+;
document.getElementById(“carb1”).innerHTML=car1;
}
函数incs2()
{
car2=car2+;
document.getElementById(“carb2”).innerHTML=car2;
}
setInterval('incs1()',*1000);
setInterval('incs2()',*1000);
最后,计时器部分。我想摆脱加载,并在正文中添加一个onpageload事件,以确保页面加载后立即加载数字(而不是等待间隔)
加载…
正在加载…
加载。。。
当前脚本:
当前scrip由一个类运行,该类为页面上的三个计数器中的每一个创建一个对象。目前计数器遇到了一些问题
这就是我的数学。现在开始工作了
function carbonsaving()
{
$now = time();
$start = mktime(0,0,0,$this->month,$this->day,$this->year);
$growthrate = ($this->rate / $this->seconds) ;
$saving = round(((($now - $start) * $growthrate)+$this->base ));
return $saving;
}
您可以使用
尝试根据javascript函数内的时间重新计算,并使该函数以更短的时间间隔运行。我认为指望javascript计时的准确性是行不通的。但如果您根据当前时间戳重新计算。可能会同步。
function carbonsaving()
{
$now = time();
$start = mktime(0,0,0,$this->month,$this->day,$this->year);
$growthrate = ($this->rate / $this->seconds) ;
$saving = round(((($now - $start) * $growthrate)+$this->base ));
return $saving;
}