html 从基数每天递增的JS计数器

6g8kf2rb  于 2022-12-02  发布在  其他
关注(0)|答案(4)|浏览(335)

我想创建一个计数器,它从1000开始,每24小时增加40
我似乎找不到这个在任何其他的SO职位,有人能请帮助?

  • 谢谢-谢谢
8iwquhpp

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;
2ul0zpep

2ul0zpep2#

此计数器将从1000开始,然后每24小时增加40。您可以根据需要更改值和时间。您可以将time值更改为1000(= 1秒),以查看其工作方式。
第一个

jv4diomz

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
am46iovg

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日期。这使得它与时区和任何当地适用的夏令时无关。

相关问题