PHP/Javascript定时器和计数器

PHP/Javascript定时器和计数器,php,javascript,time,mktime,Php,Javascript,Time,Mktime,概述:我需要一个计数器,可以计数从一个插入的数字,可以继续计数,而没有用户,并直观地显示计数,因为它发生在一个网站。在我离开这里的时候,我会努力解决这个问题。任何帮助都将不胜感激。我计划把它打包成Joomla的一个模块,并在不久的将来免费发布 输入为: 开始数量,以秒为单位的间隔要更新,速率要为每个 间歇 用于构建计时器的PHP类 class Counter { var $baserate; var $rate; var $start; var $secon

概述:我需要一个计数器,可以计数从一个插入的数字,可以继续计数,而没有用户,并直观地显示计数,因为它发生在一个网站。在我离开这里的时候,我会努力解决这个问题。任何帮助都将不胜感激。我计划把它打包成Joomla的一个模块,并在不久的将来免费发布

输入为:

  • 开始数量以秒为单位的间隔要更新,速率要为每个 间歇
用于构建计时器的PHP类

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;
    }