首页 新闻 会员 周边

JavaScript 返回日期直接所有的集合

0
悬赏园豆:10 [已解决问题] 解决于 2016-12-08 16:18

方法:

        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

s_p的主页 s_p | 初学一级 | 园豆:138
提问于:2016-12-06 15:39
< >
分享
最佳答案
0

月份是从0开始的吧

收获园豆:8
让我发会呆 | 老鸟四级 |园豆:2929 | 2016-12-06 15:59

不是12月 正常

s_p | 园豆:138 (初学一级) | 2016-12-07 08:23

@s_p: 他的getDate()方法有问题的,日期月份就从0开始,别像他这么搞,错误在:var date = new Date(temp[0],temp[1],temp[2])。

让我发会呆 | 园豆:2929 (老鸟四级) | 2016-12-07 08:38

@让我发会呆: 明白了 我搜了下 是从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 | 园豆:138 (初学一级) | 2016-12-08 15:40

@s_p: 

 

重新找了个 之前的有bug 

http://blog.csdn.net/magi1201/article/details/44946021

s_p | 园豆:138 (初学一级) | 2016-12-08 16:19
其他回答(1)
0

你确定这个方法正确吗?

 

收获园豆:2
liangtong | 园豆:305 (菜鸟二级) | 2016-12-06 16:00

方法正确  看问题补充的 有异常 

支持(0) 反对(0) s_p | 园豆:138 (初学一级) | 2016-12-07 08:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册