百变鹏仔-专注前端行业精选
js判断某个日期是否存在开始日期至结束日期范围之内
作者:鹏仔先生 日期:2026-01-26 11:58:25 浏览:226 分类:JavaScript
js判断某个日期是否存在开始日期至结束日期范围之内!
传入三个值,第一个为 开始日期,第二个为 结束日期,第三个为 需要判断的日期。
如果第三个不传,则获取当天的日期用来判断。
/**
* 判断指定日期(或今天)是否在开始/结束日期范围内(包含起止当天)
* @param {string} startDateStr - 开始日期(格式:YYYY-MM-DD)
* @param {string} endDateStr - 结束日期(格式:YYYY-MM-DD)
* @param {string|null|undefined} targetDateStr - 自定义目标日期(可选,格式:YYYY-MM-DD),不传则判断今天
* @returns {boolean} 目标日期在范围内返回true,否则返回false
*/
isDateInRange(startDateStr, endDateStr, targetDateStr) {
try {
// 步骤1:确定目标日期(有自定义则用自定义,无则用今天)
let targetDate;
if (targetDateStr) {
// 解析自定义目标日期
targetDate = new Date(targetDateStr);
} else {
// 无自定义日期 → 用今天(仅保留年月日,清空时分秒)
const today = new Date();
targetDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
}
// 步骤2:解析开始/结束日期(仅保留年月日,避免时分秒干扰)
const startDate = new Date(startDateStr);
const endDate = new Date(endDateStr);
// 纯日期对象(清空时分秒)
const pureStartDate = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate());
const pureEndDate = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate());
const pureTargetDate = new Date(targetDate.getFullYear(), targetDate.getMonth(), targetDate.getDate());
// 步骤3:校验所有日期合法性
const isStartValid = !isNaN(pureStartDate.getTime());
const isEndValid = !isNaN(pureEndDate.getTime());
const isTargetValid = !isNaN(pureTargetDate.getTime());
if (!isStartValid || !isEndValid || !isTargetValid) {
console.error('日期格式错误,请传入 YYYY-MM-DD 格式的有效日期');
return false;
}
// 步骤4:核心判断:目标日期 >= 开始日期 且 <= 结束日期
return pureTargetDate >= pureStartDate && pureTargetDate <= pureEndDate;
} catch (e) {
console.error('日期范围判断出错:', e);
return false;
}
}- 上一篇:vue中实现1小时不操作则退出登录功能
- 下一篇:已经是最后一篇了
猜你还喜欢
- 09-26 vue中实现1小时不操作则退出登录功能
- 05-14 uniapp微信小程序获取微信步数,微信小程序获取微信步数完整版
- 04-24 简单实现文字两端对齐
- 04-24 检测图片URL是否失效
- 04-24 elemetui中el-date-picker限制开始结束日期只能选择当月
- 04-24 iview中DatePicker时间段选择限制开始结束日期只能选择当月
- 03-24 vue h5实现车牌号输入框
- 03-11 开发抖音、快手、小红书等短视频去水印小程序的思路以及去水印小程序合法域名的解决问题
- 11-01 vue中实现代码高亮
- 08-09 vue动态修改网站的icon图标
- 07-08 VUE中ECharts提示框tooltip自动切换
- 07-02 微信小程序判断是安卓还是苹果
取消回复欢迎 你 发表评论:
- 搜索
- 随机tag






