![]() | 1 hsinglin 2013-09-26 18:02:57 +08:00 看看moment.js,应该有便捷的方法。 |
![]() | 3 solu 2013-09-26 18:15:20 +08:00 格式化成时间戳然后循环对比,每次累加指定step得到结果再格式化回来就可以了 |
![]() | 4 subpo PRO 自己for构建 |
![]() | 5 xiaoxianyu 2013-09-26 19:25:49 +08:00 ![]() 自己临时写了一个,你帮忙看一下,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 ![]() 比较简单的: 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 ![]() 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)) 一句话就搞定咯。 |