📅  最后修改于: 2023-12-03 15:16:13.289000             🧑  作者: Mango
Javascript中的日期范围是一个常见的需求。有时候我们需要在网页上选择特定日期范围,有时候需要计算某个日期范围内的数据,等等。下面是一些你可以用来处理日期范围的JavaScript代码片段。
/**
* 获取两个日期之间的天数
* @param {Date} date1 - 第一个日期
* @param {Date} date2 - 第二个日期
* @return {Number} 日期之间的天数
*/
function getDaysBetweenDates(date1, date2) {
const oneDay = 1000 * 60 * 60 * 24; // 一天的毫秒数
const timeDiff = Math.abs(date2.getTime() - date1.getTime());
return Math.ceil(timeDiff / oneDay);
}
这个函数将返回两个日期之间的天数。使用Math.abs()以确保结果为正数。使用Math.ceil()向上取整,以便在跨越世纪的日期范围内得到正确的结果。
/**
* 获取两个日期之间的月数
* @param {Date} date1 - 第一个日期
* @param {Date} date2 - 第二个日期
* @return {Number} 日期之间的月数
*/
function getMonthsBetweenDates(date1, date2) {
const diff = (date2.getTime() - date1.getTime()) / 1000;
diff /= (60 * 60 * 24 * 7 * 4);
return Math.abs(Math.round(diff));
}
这个函数将返回两个日期之间的月数。它将时间差除以刚才计算每月的秒数,然后使用Math.round()四舍五入到最接近的月份。
/**
* 获取本周的起始和结束日期
* @return {Array} 包含本周起始和结束日期的数组
*/
function getCurrentWeekDates() {
const now = new Date();
const startOfWeek = new Date(now.setDate(now.getDate() - now.getDay() + 1));
const endOfWeek = new Date(now.setDate(now.getDate() - now.getDay() + 7));
return [startOfWeek, endOfWeek];
}
这个函数将返回本周的起始和结束日期。使用Date.getDay()获取当前是星期几,并用它来计算本周的起始日期。最后,用本周的起始日期加上6天来计算本周的结束日期。
/**
* 获取本月的起始和结束日期
* @return {Array} 包含本月起始和结束日期的数组
*/
function getCurrentMonthDates() {
const now = new Date();
const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);
const endOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0);
return [startOfMonth, endOfMonth];
}
这个函数将返回本月的起始和结束日期。使用now.getMonth()获取当前月份,然后将其用作Date()的参数。将月份设置为0表示一月,而月份为1表示二月,以此类推。使用now.getFullYear()获取当前年份。本月的结束日期是本月的下一个月的第0天。