js 计算两个日期直接的天数并遍历出每一天的年月日

  • vue框架下(只要是js都能用,就是注意函数名写法,和调用时加不加this
	 	created(){
            this.getMonthNum();
           
        },
        methods:{       
            getMonthNum(){// 求当前日期的年月日
                let date = new Date();
                let year = date.getUTCFullYear();
                let month = date.getMonth()+1;
                let day = date.getDate();
                //let daysAll  = new Date(year,month,0).getDate() ;// 本月天数
                let nowtime = `${year}-${month}-${day}`;// 现在日期
                let oldtime = this.getNextDate(nowtime,27)// 返回值是现在日期 -27天 = xxx年月日
                let arr =  this.getAll(oldtime,nowtime) // 然后遍历这俩日期直接的日期
                console.log(arr,'两个日期之间的具体天')//['2023-06-11','2023-06-12','2023-07-11',....]
            },

            getNextDate(date,day) {// 计算当前日期的xxx天前日期
                // getNextDate("2018-09-27",10)
                // date 代表指定的日期,格式:2018-09-27
                // day 传-1表始前一天,传1表始后一天
                var dd = new Date(date);
                dd.setDate(dd.getDate()  - day);
                var y = dd.getFullYear();
                var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
                var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
                return y + "-" + m + "-" + d;
            },

            getAll(start, end) {
                // getAll('2023-06-11','2023-7-9');
                let dateList = [];
                var startTime = this.getDatestr(start);
                var endTime = this.getDatestr(end);
        
                while ((endTime.getTime() - startTime.getTime()) >= 0) {
                    var year = startTime.getFullYear();
                    var month = startTime.getMonth() + 1 < 10 ? '0' + (startTime.getMonth() + 1) : startTime.getMonth() + 1;
                    var day = startTime.getDate().toString().length == 1 ? "0" + startTime.getDate() : startTime.getDate();
                    dateList.push(year + "-" + month + "-" + day);
                    startTime.setDate(startTime.getDate() + 1);
                }
                
                return dateList;
            },
        
        
            getDatestr(datestr) {
                var temp = datestr.split("-");
                var date = new Date(temp[0], temp[1] - 1, temp[2]);
                return date;
            },
}

你可能感兴趣的:(javascript,前端)