function getWeekInYear(date) {
//判断该星期是否跨年,如果跨年就是第一周
let weekStartDate = getWeekStartByDate(date) //一周开始时间
let endDate = getDateFromDay(weekStartDate, 6) //一周结束时间
if (weekStartDate.getFullYear() != endDate.getFullYear()) {
return endDate.getFullYear() + '年第1周'
}
let d1 = new Date(date)
let d2 = new Date(date)
d2.setMonth(0)
d2.setDate(1)
d2 = getWeekStartByDate(d2)
let rq = d1 - d2
let days = Math.ceil(rq / (24 * 60 * 60 * 1000)) + 1
let num = Math.ceil(days / 7)
return endDate.getFullYear() + '年第' + num + '周'
}
function getWeekStartByDate(date) {
let day = date.getDay()
return getDateFromDay(date, -day)
}
function getDateFromDay(dayDate, day) {
let date = new Date()
date.setTime(dayDate.getTime() + day * 24 * 60 * 60 * 1000)
return date
}
/**
* 获取区间日期的小时/天/周/月数组支持跨年
*type:类型分为('hour'-小时,'day'-天,'week'-周,'month'-月)
*start:开始日期
*stop:结束日期
* */
function getDuration(type,start,stop){
var weekArr = new Array();
var $array = new Array();
var current = new Date(start);
stop = new Date(stop);
while (current <= stop) {
$array.push( new Date (current) );
if(type == 'hour'){//小时
current.setHours(current.getHours() + 1);
}else if(type == 'day'){//天
current.setDate(current.getDate() + 1);
}else if(type == 'week'){//周
current.setDate(current.getDate() + 7);
}else if(type == 'month'){//月
current.setMonth(current.getMonth() + 1);
}else{//默认天
current.setDate(current.getDate() + 1);
}
}
for(var i=0;i<$array.length;i++){
let week = getWeekInYear($array[i]);
weekArr[i]=week;
}
return weekArr;
}
/**
* 获取区间日期的季度
*start:开始日期
*stop:结束日期
* */
function getFourSeason(start,stop) {
let starttime = new Date(start);
let endtime = new Date(stop);
let startYear = starttime.getFullYear();
let endYear = endtime.getFullYear();
let startMonth = starttime.getMonth() + 1;
let endMonth = endtime.getMonth() + 1;
var arr = [];
for (let i = startYear; i <= endYear; i++) {
// 开始年份与结束年份相同
if(startYear == endYear){
if(startMonth<=3 && endMonth<=3){
arr.push(
i+"年"+"第一季度"
)
}else if(startMonth<=3 && 3<endMonth && endMonth<=6){
arr.push(
i+"年"+"第一季度",
i+"年"+"第二季度"
)
}else if(startMonth<=3 && 6<endMonth && endMonth<=9){
arr.push(
i+"年"+"第一季度",
i+"年"+"第二季度",
i+"年"+"第三季度"
)
}else if(startMonth<=3 && 9<endMonth && endMonth<=12){
arr.push(
i+"年"+"第一季度",
i+"年"+"第二季度",
i+"年"+"第三季度",
i+"年"+"第四季度"
)
}else if(3<startMonth && startMonth<=6 && 3<endMonth && endMonth<=6){
arr.push(
i+"年"+"第二季度",
)
}else if(3<startMonth && startMonth<=6 && 6<endMonth && endMonth<=9){
arr.push(
i+"年"+"第二季度",
i+"年"+"第三季度"
)
}else if(3<startMonth && startMonth<=6 && 9<endMonth && endMonth<=12){
arr.push(
i+"年"+"第二季度",
i+"年"+"第三季度",
i+"年"+"第四季度"
)
}else if(6<startMonth && startMonth<=9 && 6<endMonth && endMonth<=9){
arr.push(
i+"年"+"第三季度"
)
}else if(6<startMonth && startMonth<=9 && 9<endMonth && endMonth<=12){
arr.push(
i+"年"+"第三季度",
i+"年"+"第四季度"
)
}else if(9<startMonth && startMonth<=12 && 9<endMonth && endMonth<=12){
arr.push(
i+"年"+"第四季度"
)
}
}else{
// 开始的那年
if (i == startYear) {
if(startMonth<=3){
arr.push(
startYear+"年"+"第一季度",
startYear+"年"+"第二季度",
startYear+"年"+"第三季度",
startYear+"年"+"第四季度"
)
}else if(startMonth>3&&startMonth<=6){
arr.push(
startYear+"年"+"第二季度",
startYear+"年"+"第三季度",
startYear+"年"+"第四季度"
)
}else if(startMonth>6&&startMonth<=9){
arr.push(
startYear+"年"+"第三季度",
startYear+"年"+"第四季度"
)
}else{
arr.push(
startYear+"年"+"第四季度"
)
}
}
if(i>startYear&&i<endYear){
arr.push(
i+"年"+"第一季度",
i+"年"+"第二季度",
i+"年"+"第三季度",
i+"年"+"第四季度"
)
}
// 结束的那年
if(i==endYear){
if(endMonth<=3){
arr.push(
endYear+"年"+"第一季度"
)
}else if(endMonth>3&&endMonth<=6){
arr.push(
endYear+"年"+"第一季度",
endYear+"年"+"第二季度"
)
}else if(endMonth>6&&endMonth<=9){
arr.push(
endYear+"年"+"第一季度",
endYear+"年"+"第二季度",
endYear+"年"+"第三季度"
)
}else{
arr.push(
endYear+"年"+"第一季度",
endYear+"年"+"第二季度",
endYear+"年"+"第三季度",
endYear+"年"+"第四季度"
)
}
}
}
}
return arr;
}
版权声明:本文为baidu_41773019原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。