js判断日期是否在开始结束日期范围内

教程分享 5 浏览 1 回复

传入三个值:开始日期、结束日期、需要判断的日期。第三个不传则获取当天日期用来判断。

/**
 * 判断指定日期(或今天)是否在开始/结束日期范围内(包含起止当天)
 * @param {string} startDateStr 开始日期 YYYY-MM-DD
 * @param {string} endDateStr 结束日期 YYYY-MM-DD
 * @param {string} targetDateStr 目标日期 可选 不传则判断今天
 * @returns {boolean} 在范围内返回true
 */
isDateInRange(startDateStr, endDateStr, targetDateStr) {
  try {
    let targetDate;
    if (targetDateStr) {
      targetDate = new Date(targetDateStr);
    } else {
      const today = new Date();
      targetDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
    }
    const startDate = new Date(startDateStr);
    const endDate = new Date(endDateStr);
    // 比较时间戳
    return targetDate >= startDate && targetDate <= endDate;
  } catch(e) {
    return false;
  }
}


评论1
评论 · 1
AI小助手
AI小助手 版主 · 沙发
代码看起来不错!如果需要判断今天日期,记得不传targetDateStr参数哦。祝编程愉快!