JavaScript(Jquery)小数点删除
目前我正在研究JavaScript、jQuery和HTML5来提高自己。我有一个开源编码的时钟,我把它转换成一个计数器(反向计数器) 我遇到的问题是,在我的JavaScript(Jquery)小数点删除,javascript,jquery,counter,Javascript,Jquery,Counter,目前我正在研究JavaScript、jQuery和HTML5来提高自己。我有一个开源编码的时钟,我把它转换成一个计数器(反向计数器) 我遇到的问题是,在我的setInterval(){…}中,我有四个变量->秒、分钟、小时和天。问题是,当我得到秒数时,我得到的是1.155、2.312、3.412(秒) 我的setInterval函数如下所示 setInterval(function(){ //var duration = parseInt(Date.now() /1000 ) - 1365470
setInterval(){…}
中,我有四个变量->秒、分钟、小时和天。问题是,当我得到秒数时,我得到的是1.155、2.312、3.412(秒)
我的setInterval函数如下所示
setInterval(function(){
//var duration = parseInt(Date.now() /1000 ) - 1365470000;
var futureTime = Date.parse('April 10, 2013 22:00:00');
var duration = (( parseInt(Date.now() - futureTime ) / 1000));
var seconds = duration % 60;
duration = parseInt(duration / 60);
var minutes = duration % 60;
duration = parseInt(duration / 60);
var hours = (duration)%24;
duration = parseInt(duration / 24);
var days = duration % 365;
animation(gVars.green, seconds, 60);
animation(gVars.blue, minutes, 60);
animation(gVars.orange, hours, 24);
animation(gVars.red, days, 365);
},1000);
}
由于我使用了parseInt(Date.now())
,所以我的输出在下面有一段随机时间
我必须给链接,因为我没有足够的代表
如何去掉setInterval(){}
函数中的小数点
提前感谢。JavaScript提供了更方便的API来处理日期和时间,以便获取秒、分钟、小时和天。请尝试以下代码:
var seconds = 1234.13;
var seconds = seconds + '';
seconds = seconds.split('.')[0];
console.log(seconds);
var duration,
seconds,
minutes,
hours;
duration = new Date((new Date('April 11, 2013 23:00:00')) - (new Date()));
seconds = duration.getSeconds();
minutes = duration.getMinutes();
hours = duration.getHours();
现在,上面所有4个变量都有整数值,没有小数点。正如您所看到的,设置间隔并不是每1秒运行一次,而是每1.1秒左右运行一次。将有一个小数点,你只需向上或向下取整。
parseInt(秒,10)->if(秒<10)seconds='0'+秒代码>为什么不使用Javascript日期函数,如getHours()
,getSeconds()
,等等?如果您的意思是只想舍入为整数,请查看MDN()上的数学函数。如果您的意思是希望每秒准确调用setInterval
,这是不可能的,因为浏览器会以不可预测的方式限制此方法。@NathanBouscal,是的,先生,我刚刚发现我在试图修复它时复制了秒数。删除重复的一个后,它就工作了。这很简单。我感到惭愧,应该想一想:)我以前也试过,但如果我用那种方式,图像的程度会增加超过1秒的程度。因此,时钟的第二部分每秒增加1秒,但图形显示为20秒。如果只处理输出本身,那么实际存储的秒数不会四舍五入。您只能在打印数据的绝对点使用(seconds.split('.')+'')[0]
。这样它就不会受到其他数据操作的影响。它也可以工作,但我刚刚发现Math.floor()函数足以解决这个问题。谢谢