1
hsinglin 2013-09-26 18:02:57 +08:00
看看moment.js,应该有便捷的方法。
|
3
solupro 2013-09-26 18:15:20 +08:00
格式化成时间戳然后循环对比,每次累加指定step得到结果再格式化回来就可以了
|
4
subpo 2013-09-26 18:19:34 +08:00
自己for构建
|
5
xiaoxianyu 2013-09-26 19:25:49 +08:00 1
自己临时写了一个,你帮忙看一下,https://gist.github.com/liyao/6712819,这个版本存在的问题是如果时间跨度是月份或者年份就不行了,考虑到每月有30天或者31天,闰年平年,还要再想一下。大体的思路就是用new Date().getTime()将日期转换成时间戳,然后根据时间跨度的粒度循环累加。
|
6
xiaoxianyu 2013-09-26 19:26:25 +08:00
额...怎么溢出了....
|
7
switch 2013-09-26 20:18:47 +08:00 1
比较简单的:
var date1 = "2013-01-01 09:00"; var date2 = "2013-01-03 12:00"; var d1 = new Date(date1.replace(/[- ]/g, ",")); var d2 = new Date(date2.replace(/[- ]/g, ",")); var d = d1; while (d <= d2) { console.log([d.getFullYear(), ("0" + (d.getMonth() + 1)).slice(-2), ("0" + d.getDate()).slice(-2)].join("-") + " " + [("0" + d.getHours()).slice(-2), ("0" + d.getMinutes()).slice(-2)].join(":")); d.setHours(d.getHours() + 1); } |
8
mkeith 2013-09-26 20:34:23 +08:00
转换成时间戳格式,然后再for循环加24*60*60
|
9
est 2013-09-26 21:35:16 +08:00 4
for(var i=Date.parse('2013-01-01 09:00');i<Date.parse('2013-01-03 09:00');i+=3600000)console.info(new Date(i))
一句话就搞定咯。 |