为什么此函数不返回从现在开始>的随机时间?



我试图使用以下函数(取自另一个答案)来获得一个随机时间,即>从现在起,每小时一次

我不知道我需要在startHour中输入的确切值

我的时间是美国东部时间下午4点,我在这里输入16,在hourRange输入5,但它给我的值小于这个。

function randomTime(rangeOfDays = 0, startHour, hourRange){
var today = new Date(Date.now());
return new Date(today.getYear()+1900,today.getMonth(), today.getDate()+Math.random() *rangeOfDays, Math.random()*hourRange + startHour, Math.random()*60)
}

链接到答案,答案

这里只使用Ticks来处理问题。这样更容易管理。

const getRandomTime = (offsetHour = 0, rangeInHours = 2) => {
const curTicks = Date.now() + 0 * (offsetHour*60*60*1000);
const addTicks = (Math.random()*rangeInHours)*60*60*1000;

return new Date(curTicks + addTicks);
};
console.log((new Date()));
for(let i=0; i<10;i++) {
console.log( getRandomTime(1, 2+i));
}

最新更新