如何在 javascript 中执行部分日期比较,忽略年份?
How to perform partial date comparison, ignoring the year, in javascript?
正如标题所说,我想编写一些基本代码来检查给定 JavaScript Date
object 的月份和日期是否介于某个特定日期之间范围。我知道要比较常规日期,可以执行以下操作...
date1 < date2 && date2 > date3
但是如何才能只访问月份和日期呢?我知道 Date
object 可以 return 既是月又是日,但老实说,我很困惑如何只比较它们。
您可以从日期中提取可比较的 "key"(例如 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)
)
正如标题所说,我想编写一些基本代码来检查给定 JavaScript Date
object 的月份和日期是否介于某个特定日期之间范围。我知道要比较常规日期,可以执行以下操作...
date1 < date2 && date2 > date3
但是如何才能只访问月份和日期呢?我知道 Date
object 可以 return 既是月又是日,但老实说,我很困惑如何只比较它们。
您可以从日期中提取可比较的 "key"(例如 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)
)