根据给定日期和获取范围,获取往前几天或者往后几天的数组
/**
* 根据提供的数字和日期字符串获取一系列过去或未来的日期。
* @param {string} stringNum 包含要获取的日期数量的字符串,如果包含'-'表示获取过去的日子("-7"),否则表示获取未来的日子("7")。
* @param {string} stringDate 一个符合Date构造函数要求的日期字符串。
* @returns {Array} 返回一个包含指定数量日期的字符串数组,格式为YYYY-MM-DD。
*/
function GetDate(stringNum, stringDate) {
const today = new Date(stringDate); // 使用提供的日期字符串创建一个Date对象
const pastDatesArray = []; // 用于存储过去或未来日期的数组
if (stringNum.includes('-')) {
// 如果字符串包含'-',表示需要获取过去的日子
for (let i = Math.abs(Number(stringNum)); i >= 1; i--) {
const pastDate = new Date(today); // 创建一个基于提供的日期的日期对象
pastDate.setDate(today.getDate() - i); // 设置日期为提供的日期的前i天
pastDatesArray.push(pastDate.toISOString().substring(0, 10)); // 将日期对象格式化后添加到数组中
}
} else {
// 如果字符串不包含'-',表示需要获取未来的日子
for (let i = 1; i <= Math.abs(Number(stringNum)); i++) {
const pastDate = new Date(today); // 创建一个基于提供的日期的日期对象
pastDate.setDate(today.getDate() + i); // 设置日期为提供的日期的后i天
pastDatesArray.push(pastDate.toISOString().substring(0, 10)); // 将日期对象格式化后添加到数组中
}
}
return pastDatesArray; // 返回包含日期字符串的数组
}
获取当前日期的前后数组
/**
* 获取当前日期前后30天的日期范围数组,格式为YYYY-MM-DD。
* @returns {Array} 返回一个包含日期字符串的数组,每个字符串代表从当前日期往前推15天到往后推15天的日期。
*/
function GetDate() {
const today = new Date(); // 获取当前日期
const dateRangeArray = []; // 初始化用于存储日期范围的数组
for (let i = -15; i <= 15; i++) { // 循环遍历前后30天的日期范围
const date = new Date(today); // 创建一个新的Date对象来操作日期
date.setDate(today.getDate() + i); // 根据循环变量i设置日期
dateRangeArray.push(date.toISOString().substring(0, 10)); // 将日期转换为字符串并添加到数组中
}
return dateRangeArray // 返回日期范围数组
}