人狠话不多,直接操代码,可直接使用
//获取时间区间年份
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;
}
//获取时间区间月份
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;
}
//获取时间区间所有日期
function getAllDate(start,end){
let dateArr = []
let startArr = start.split('-')
let endArr = end.split('-')
let db = new Date()
db.setUTCFullYear(startArr[0], startArr[1] - 1, startArr[2])
let de = new Date()
de.setUTCFullYear(endArr[0], endArr[1] - 1, endArr[2])
let unixDb = db.getTime()
let unixDe = de.getTime()
let stamp
const oneDay = 24 * 60 * 60 * 1000;
for (stamp = unixDb; stamp <= unixDe;) {
dateArr.push(format(new Date(parseInt(stamp))))
stamp = stamp + oneDay
}
return dateArr
}
function format(time){
let ymd = ''
let mouth = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : ('0' + (time.getMonth() + 1))
let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate())
ymd += time.getFullYear() + '-' // 获取年份。
ymd += mouth + '-' // 获取月份。
ymd += day // 获取日。
return ymd // 返回日期。
}
代码可以直接使用,效果如下,分别是日期,月份,年份
鄙人小网站,欢迎各位大佬点击:www.51wzuan.cn