方法:
getStatrEndDate: function(stime,send) { var startTime = "".getDateExtend(stime), endTime = "".getDateExtend(send), retrunDate=[]; while ((endTime.getTime() - startTime.getTime()) >= 0) { var year = startTime.getFullYear(); var month = startTime.getMonth().toString().length == 1 ? "0" + startTime.getMonth().toString() : startTime.getMonth(); var day = startTime.getDate().toString().length == 1 ? "0" + startTime.getDate() : startTime.getDate(); retrunDate.push(year + "-" + month + "-" + day); startTime.setDate(startTime.getDate() + 1); } return retrunDate; }
/*返回两个日期内的所有date集合,根据开始时间、结束时间得到两个时间段内所有的日期*/ getStatrEndDate: function(stime,send) { var startTime = "".getDateExtend(stime), endTime = "".getDateExtend(send), retrunDate=[]; while ((endTime.getTime() - startTime.getTime()) >= 0) { var year = startTime.getFullYear(); var month = startTime.getMonth().toString().length == 1 ? "0" + startTime.getMonth().toString() : startTime.getMonth(); var day = startTime.getDate().toString().length == 1 ? "0" + startTime.getDate() : startTime.getDate(); retrunDate.push(year + "-" + month + "-" + day); startTime.setDate(startTime.getDate() + 1); } return retrunDate; }
getStatrEndDate存在bug 为什么在12的时候获取的是0呢?
其实我是从iteye里面找的 他有个bug
function getDate(datestr){ var temp = datestr.split("-"); var date = new Date(temp[0],temp[1],temp[2]); return date; } var start = "2012-3-25"; var end = "2012-4-3"; var startTime = getDate(start); var endTime = getDate(end); while((endTime.getTime()-startTime.getTime())>=0){ var year = startTime.getFullYear(); var month = startTime.getMonth().toString().length==1?"0"+startTime.getMonth().toString():startTime.getMonth(); var day = startTime.getDate().toString().length==1?"0"+startTime.getDate():startTime.getDate(); alert(year+"-"+month+"-"+day); startTime.setDate(startTime.getDate()+1); }
var start = "2016-12-03";
var end = "2016-12-09";
这段时间 就异常了
http://hbiao68.iteye.com/blog/1839571
月份是从0开始的吧
不是12月 正常
@s_p: 他的getDate()方法有问题的,日期月份就从0开始,别像他这么搞,错误在:var date = new Date(temp[0],temp[1],temp[2])。
@让我发会呆: 明白了 我搜了下 是从0开始 那为什么 1月 2 月 其他月份又正常了 到了12就不行
var date = new Date(temp[0],temp[1],temp[2])。这个其实没问题 出现出现在这个 temp[0],temp[1],temp[2]这3个返回的值 不对了 12月 (0-11默认加了一年了)
@s_p:
重新找了个 之前的有bug
http://blog.csdn.net/magi1201/article/details/44946021
你确定这个方法正确吗?
方法正确 看问题补充的 有异常