📜  javascript 日期范围 - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:13.289000             🧑  作者: Mango

Javascript 日期范围

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天。