
需求问题
给定5个相同的日期,你如何判断它是否连续5天
我的第一反应getday(),然后将它来回。
但是仔细想想,绝对错误的,例如,这个星期二星期一,所以它会被误判。
不仅是这个问题,还有一个月、一年、一个月等等。
然后还有下面的代码。
让时间戳抹去一切
为了不解决这些问题,我想到了时间戳,商品完全可以忽略上面的问题,只要时间戳,最后比较就可以比较。
然后我给出了下面的代码:
让天= {
2016-02-28,
2016-02-29 ' /月
2016-03-01 ' /月
2016-03-02,
2016-03-03,
}
第一类,然后打开时间戳
让= days.sort(_days)。图((D I)= > {
新日期(d)
dt.setdate(DT。getdate)我(+ 4) / /治疗相同的日期
返回+ DT
})
时间戳比较是一致的。
Console.log(
_days { 0 } = = _days { 1 }
_days { 0 } = = _days { 2 }
_days { 0 } = = _days { 3 }
_days { 0 } = = _days { 4 }
)
好了,所有的问题都解决了,新年、月、月也没关系。
一般的函数封装
上面的代码仍然有一点缺陷,因为当没有治疗时,如果有时每分钟,它必须首先擦除。
让天= {
2016-02-28 12:00:00,
2016-02-29 12:00:01 ' /月
2016-03-01 12:00:02 ' /月
2016-03-02 12:00:03,
2016-03-03 12:00:04,
2016-03-04 12:00:04,
}
console.log(continuedays(日))
功能continuedays(arr_days){
第一类,然后打开时间戳
让= arr_days.sort(天)。图((D I)= > {
新日期(d)
dt.setdate(DT。getdate)我(+ 4) / /治疗相同的日期
当MS 。
(0)dt.sethours
(0)dt.setminutes
(0)dt.setseconds
(0)dt.setmilliseconds
返回+ DT
})
让=真的
days.foreach(D = > {
如果(天{ 0 }!= d){
ret = false
}
})
返回页首
}
这个函数被改为2个地方,比较毫秒和擦除周期,其他是相同的。
总结
js的处理时间还是很简单的,比如写一个日期插件,其实用日期是很容易实现的,但是你想了解一下日期的API。
当然,简单的说,或者PHP最简单,就是简单的卫士。
上面的JS决定一组日期是否连续。A simple example is the whole content that Xiaobian shared to you. 我希望能给你一个参考,希望你能得到很多支持。