/**
|
* 时间前后向前推算时间集合
|
* @param {string:before|after} timebd:获取时间往后推,还是往前推,
|
* @param {boole} haveCurrentDay:包不包含当天时间,
|
* @param {number} Days:计算几天的时间,
|
* @param {string:"2023-11-02"} timing:指定不指定当天的日期
|
* @returns {array}数据集合
|
*/
|
export const nextDay = (timebd, haveCurrentDay, Days, timing) => {
|
|
let today = new Date() //获取今天的日期
|
if (timing) {
|
today = new Date(timing)
|
}
|
let date2 = new Date(today);
|
let dateArray = []
|
timebd=timebd ? timebd:"after"
|
haveCurrentDay=haveCurrentDay ? true:false
|
Days=Days ? Days:7
|
function TimestampToDate2(Timestamp) {
|
let now = new Date(Timestamp),
|
y = now.getFullYear(),
|
m = now.getMonth() + 1,
|
d = now.getDate();
|
return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d);
|
}
|
let fori=haveCurrentDay ? 0:1;
|
let fortotal=haveCurrentDay ? Days:Days+1;
|
for(let i = fori; i < fortotal; i++){
|
let everyDay=""
|
if (timebd=="after") {//未来
|
everyDay=date2.setDate(today.getDate() + i)
|
}else{//过去
|
everyDay=date2.setDate(today.getDate() - i)
|
}
|
dateArray.push(TimestampToDate2(everyDay)) //获取未来7天内的日期
|
}
|
if (timebd=="after") {//未来
|
return dateArray
|
}else{//过去
|
return dateArray.reverse()
|
}
|
}
|
|
/**
|
* 返回两个日期之前的天数
|
*/
|
export const getDateByDays = (startDate, endDdate) => {
|
let d1 = Date.parse(new Date(startDate));
|
let d2 = Date.parse(new Date(endDdate));
|
// 时间戳相减 / 天数
|
let day = parseInt((d2 - d1) / (1000 * 60 * 60 * 24));
|
return day
|
}
|
|
// 获取多少天后的日期
|
export const getDaysAfterDate = (date, days) => {
|
if (days === 0) {
|
return '2099-01-01'
|
}
|
const now = new Date(date);
|
now.setDate(now.getDate() + days);
|
const year = now.getFullYear();
|
const month = now.getMonth() + 1; // 月份是从0开始的
|
const day = now.getDate();
|
return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
|
}
|