js方式获取两个日期间的所有日期天数所有月份所有年份

56次阅读

共计 1743 个字符,预计需要花费 5 分钟才能阅读完成。


1. 获取所有的天数:

话不多说直接上代码。

            function getDateBetween(start,end){var result = [];
                    // 使用传入参数的时间
                    var startTime = new Date(start);
                    var endTime = new Date(end);
                    while(endTime - startTime>=0) {let year = startTime.getFullYear();
                        let month = startTime.getMonth().toString().length==1?"0"+(startTime.getMonth()+1).toString():startTime.getMonth();
                        let day = startTime.getDate().toString().length==1?"0"+startTime.getDate():startTime.getDate();
                        // 加入数组
                        result.push(year+"-"+month+"-"+day);
                        // 更新日期
                        startTime.setDate(startTime.getDate()+1);
                    }
                return result;
            }

测试结果:

console.log(getDateBetween('2020-06-17','2020-06-25'));


2. 获取所有的月份:

超级详细的注释

                function getMonthBetween(start,end){  
                        // 初始化数组
                        var result = [];  
                        // 切割起始年月
                        var s = start.split("-");  
                        // 切割结束年月
                        var e = end.split("-");  
                        // 获取时间对象
                        var min = new Date();  
                        var max = new Date();  
                        // 设置起始时间
                        min.setFullYear(s[0],s[1]);  
                        // 设置结束时间
                        max.setFullYear(e[0],e[1]);  
                        
                        // 复制一份起始时间对象
                        var curr = min;  
                        // 定义字符串
                        var str = "";
                        // 起始时间在结束时间之前
                        while(curr <= max){  
                            // 获取此时间的月份
                            var month = curr.getMonth();  
                            // 如果月份为 0,也就是代表 12 月份
                            if(month===0){str=(curr.getFullYear()-1)+"-"+12;
                            }else{// 正常月份
                                str=curr.getFullYear()+"-"+(month<10?("0"+month):month);
                            }
                            // 将此年月加入数组
                            result.push(str);  
                            // 更新此时间月份
                            curr.setMonth(month+1);  
                        }  
                        return result;  
                   }  

测试结果:

console.log(getMonthBetween('2018-09','2020-02'));

3. 获取所有的年份:

            function getYearBetween(start,end){var result = [];
                    // 使用传入参数的时间
                    var startTime = new Date(start);
                    var endTime = new Date(end);
                    while(endTime - startTime>=0) {
                        // 获取年份
                        let year = startTime.getFullYear();
                        // 加入数组
                        result.push(year);
                        // 更新日期
                        startTime.setFullYear(startTime.getFullYear()+1);
                    }
                return result;
           }

测试结果:

console.log(getYearBetween('2017','2020'));

正文完
 0