我想创建一个计数器,它从1000开始,每24小时增加40。我似乎找不到这个在任何其他的SO职位,有人能请帮助?
8iwquhpp1#
let count = 1000; let delay = 24 * 3600000; // 1 hour equal to 3.600.000 ms const timer = setInterval(() => { count += 24; console.log(count); }, delay) const clearTimer = () => { clearInterval(timer) } // if u want to stop interval;
2ul0zpep2#
此计数器将从1000开始,然后每24小时增加40。您可以根据需要更改值和时间。您可以将time值更改为1000(= 1秒),以查看其工作方式。第一个
time
jv4diomz3#
试试这个:
let count = 1000; const intervalPeriod = 86400000; // 24 hours in milliseconds const timer = setInterval(() => { count += 40 // increment by 40 console.log("After increment", count) }, intervalPeriod) // clearInterval(timer) if you want to clear interval
am46iovg4#
前面的答案都依赖于连续运行几天的脚本,他们也完全忽略了夏令时和不同时区的概念。下面是一个基于shyam's idea的替代解决方案,用于计算可靠的日期差异:
function utcdate(d){ return new Date(d.getFullYear(),d.getMonth(),d.getDate()); } function days(a,b){ return Math.floor((utcdate(b)-utcdate(a))/86400000); } // define starting count and a start date: const count=1000, date0=new Date(2022,8,1); // 1 September 2022 console.log(1000 + 40*days(date0,new Date()));
这种方法非常可靠--在世界各地都能提供相同的结果--而且它也不需要应用程序持续运行。计算基于每个给定(当地)日期的UTC日期。这使得它与时区和任何当地适用的夏令时无关。
4条答案
按热度按时间8iwquhpp1#
2ul0zpep2#
此计数器将从1000开始,然后每24小时增加40。您可以根据需要更改值和时间。您可以将
time
值更改为1000(= 1秒),以查看其工作方式。第一个
jv4diomz3#
试试这个:
am46iovg4#
前面的答案都依赖于连续运行几天的脚本,他们也完全忽略了夏令时和不同时区的概念。
下面是一个基于shyam's idea的替代解决方案,用于计算可靠的日期差异:
这种方法非常可靠--在世界各地都能提供相同的结果--而且它也不需要应用程序持续运行。计算基于每个给定(当地)日期的UTC日期。这使得它与时区和任何当地适用的夏令时无关。