在Javascript中创建Inrement计时器[重复]
-
21-12-2019 - |
题
问题
我想要一个计时器,它将接受秒,分钟,小时,天,并从那里开始递增,比如用户打开一个页面,其中从服务器获取的时间是说 2 hours 30 minutes 05 seconds
, ,现在javascript计时器将开始从这个开始递增,所以它 02:30:05
然后 02:30:06 .. 02:31:00
等等。.只要秒达到60分钟递增
我试过的
我已经实现了相同的使用时刻。js的
var duration = moment.duration({
'seconds': 30,
'hour': 2,
'minutes': 10
});
var interval = 1;
setInterval(function () {
duration = moment.duration(duration.asSeconds() + interval, 'seconds');
//.asSeconds()
$('.countdown').text(Math.round(duration.asHours()) + 'h:' + Math.round(duration.asMinutes()) + 'm:' + Math.round(duration.asSeconds()) + 's'); //.seconds()
$('.countdown1').text(duration.days() + 'd:' + duration.hours() + 'h:' + duration.minutes() + 'm:' + duration.seconds() + 's');
}, 1000);
要求
我想知道我如何使用实现它 javascript/jquery的 如果可能的话,我会使用 moment.js
一个,我环顾四周,但都有倒数计时器从日期创建,所以输入将是 seconds, minutes, hours, days
并且计数器将以递增的方式从那里开始
解决方案
你可以尝试这样简单的东西:
var input = {year: 0, month: 0, day: 0, hours: 2, minutes: 10, seconds: 30};
var timestamp = new Date(input.year, input.month, input.day,
input.hours, input.minutes, input.seconds);
var interval = 1;
setInterval(function () {
timestamp = new Date(timestamp.getTime() + interval * 1000);
$('.countdown2').text(timestamp.getDay()+'d:'+timestamp.getHours()+'h:'+
timestamp.getMinutes()+'m:'+timestamp.getSeconds()+'s');
}, Math.abs(interval) * 1000);
每个间隔,您都会递增Date对象的时间值,然后重新读取小时/分钟/秒,并让本机日期实现担心从原始秒转换。间隔可以是正的,也可以是负的,并且可以像你喜欢的那样大。
不隶属于 StackOverflow