/**
* 获取两个日期之间的所有月份或日期
* @param {Object} options
* @param {String} options.startDate 开始日期
* @param {String} options.endDate 结束日期
* @param {String} options.format 格式化字符串
* @param {String} options.type 时间类型 可选值:month, day
* @returns {Array} 月份列表
*/
tool.getDatesBetween = ({
startDate,
endDate,
format = "YYYY-MM",
type = "month",
}) => {
startDate = dayjs(startDate);
endDate = dayjs(endDate);
let months = [];
let current = startDate.clone(); // 使用 clone 以避免修改原始日期对象
// 循环遍历日期,直到达到结束日期
while (current.isBefore(endDate, type)) {
months.push(current.format(format)); // 格式化为 '年-月' 形式并添加到数组中
current = current.add(1, type); // 将当前日期增加一个月
}
// 最后一个月份丢失
months.push(endDate.format(format));
return months;
};