javascript - 如何在javascript中执行部分日期比较,忽略年份?
问题描述
正如标题所说,我想编写一些基本代码来检查给定 JavaScriptDate
对象的月份和日期是否在某个范围之间。我知道要比较常规日期,可以执行以下操作...
date1 < date2 && date2 > date3
但是如何只能访问月份和日期?我知道该Date
对象可以返回月份和日期,但老实说,我很难理解如何只比较它们。
解决方案
您可以从您的日期(例如 )中提取一个可比较的“键”month*100+day
并将这些键作为数字进行比较:
function compareByMD(date1, date2) {
let a = date1.getMonth() * 100 + date1.getDate();
let b = date2.getMonth() * 100 + date2.getDate();
return (a > b) - (a < b);
}
//
console.log(
[
new Date(2009, 7, 15),
new Date(2011, 8, 3),
new Date(2019, 5, 3),
new Date(2022, 7, 13),
].sort(compareByMD)
)
推荐阅读
- python - django 模板中的 URL 包含域
- c - 线程完成工作后出现分段错误
- javascript - 如何从库中覆盖现有的核心类?
- vue.js - 如何在 Vue 3 中正确使用组合 API 中的钩子
- javascript - 有没有办法从模块对象中的另一个访问方法?
- python - Python 使用 numpy.roll() 扭曲具有重复边缘的图像
- c# - 如何在 Tap 事件中更改元素的属性,并在“点击”不同元素时将其还原
- java - 如何实现一个线程相对于另一个线程的事务优先级
- python - 每条记录按这些日期范围的另一个表的名称对日期进行分类
- python - DataGrip 和 SQLite - 从数据库中检索信息