js如何在一个时间段内生成随机的的时间日期?求指教?

JavaScript0164

js如何在一个时间段内生成随机的的时间日期?求指教?,第1张

getRandomDateBetween() { // 生成当前时间一个月内的随机时间。

var date = new Date()

var e = date.getTime()//当前时间的秒数

var f = date.getTime()-(30*24*60*60*1000)//30天之前的秒数,

//这里是注释打印不用看 console.log(a.Format('yyyy-MM-dd hh:mm:ss'),b.Format('yyyy-MM-dd hh:mm:ss'))

//这里是注释打印不用看console.log(new Date(this.RandomNumBoth(f,e)).Format('yyyy-MM-dd hh:mm:ss'))

return new Date(Store.RandomNumBoth(f,e)).Format('yyyy-MM-dd hh:mm:ss')

// Store.RandomNumBoth(当前时间秒数,30天之前的时间秒数),我这是react语法在这调用加类名(Store),你们是别的就直接 this,RandomNumBoth

},

RandomNumBoth(Min,Max){

var Range = Max - Min

var Rand = Math.random()

var num = Min + Math.round(Rand * Range)//四舍五入

return num

},

那就别用计时器了,用延时器。随机数会吧?Math.random()。你用计时器没法改,计时器是每多少秒触发一次。延时器是多长时间后触发一次,可以把延迟器封装成带参数的函数,然后函数里面自调用,参数就是随机的时间。我说的是思路,如果你理解不能我也可以献丑写一下,不过我觉得还是你自己写出来比较有意义。

function(d1ID,d2ID){

// d2ID,d2ID为两个输入框ID

var dom=document

,d1=new Date(dom.getElementById(d1ID).value)

// 获得第一个日期,通过ID取得值然后作为参数生成日期值

// 日期生成方法 chrome下测试可行,未测试其他

,d2=new Date(dom.getElementByID(d2ID).value)

//获得第二个日期,原理同上

iDays = parseInt(Math.abs(d1 - d2) /1000 / 60 / 60 /24)

// 日期差为毫秒,换算为日期取整,这步直接看上面的,懒得自己一个个写了

return iDays

//返回日期差

}