/**
* @description 获取未来几天的日期
* @param {date | number | string} date - new Date() | new Date().getTime() | '2020-10-10'
* @param {number} day 未来天数,默认七天
* @returns {Array} 未来几天的时间
*/
export function getNextFewDays(date, day = 7) {
const today = new Date(date);
const arr = [];
for (let i = 1; i <= day; i++) {
const day_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * i;
const tDate = dateFormat(day_milliseconds, "yyyy-MM-dd");
arr.push(tDate);
}
return arr;
}
//getNextFewDays("2022-09-12") ==> ['2022-09-13', '2022-09-14', '2022-09-15', '2022-09-16', '2022-09-17', '2022-09-18', '2022-09-19']
//getNextFewDays("2022-09-12", 3) ==> ['2022-09-13', '2022-09-14', '2022-09-15']
/**
* @description 对日期进行格式化,
* @param {date | number | string} date - new Date() | new Date().getTime() | '2020-10-10'
* @param {string} format - 进行格式化的模式字符串 yyyy-MM-dd hh:mm:ss:SS q W
* @example
* // format = 'yyyy-MM-dd' => '2021-10-10'
* 支持的模式字母有:
* y:年,
* M:年中的月份(1-12),
* W:年中的第几周,
* d:月份中的天(1-31),
* h:小时(0-23),
* m:分(0-59),
* s:秒(0-59),
* S:毫秒(0-999),
* q:季度(1-4)
* @returns {string}
*/
export function dateFormat(date, format) {
if (!checkDate(date)) {
return "--";
}
date = new Date(date);
const map = {
M: date.getMonth() + 1, // 月份
W: getWeekNumber(date), // 周
d: date.getDate(), // 日
h: date.getHours(), // 小时
m: date.getMinutes(), // 分
s: date.getSeconds(), // 秒
q: Math.floor((date.getMonth() + 3) / 3), // 季度
S: date.getMilliseconds() // 毫秒
};
return format.replace(/([yMWdhmsqS])+/g, (all, t) => {
let v = map[t];
if (v !== undefined) {
if (all.length > 1) {
v = "0" + v;
v = v.substr(v.length - 2);
}
return v;
} else if (t === "y") {
return (date.getFullYear() + "").substr(4 - all.length);
}
return all;
});
}