如何比较 javascript 具有特定格式的日期(字符串)

How to compare javascript dates (strings) with a specific format

我有两个特定格式(字符串)的日期。我需要验证当前日期是否低于允许的最大日期:

var date_current = '03_25_2022';
var date_max = '03_30_2022';

格式将始终为 m_d_Y。由于这些在技术上是字符串,将它们作为日期进行比较的最佳方法是什么?

我正在使用这个函数,但我不确定方法:

function compareDates(d1, d2){
    var parts = d1.split('_');
    var d1 = Number(parts[1] + parts[2] + parts[0]);
    parts = d2.split('_');
    var d2 = Number(parts[1] + parts[2] + parts[0]);
    return d1 <= d2;
}

您可以先将这些字符串转换成日期对象,然后比较它们的时间戳,如下所示:

function strToDate(str) {
  const splits = str.split('_');
  if (splits.length !== 3) {
    throw Error("Invalid date");
  }
  return new Date(splits[2], parseInt(splits[0]) - 1, splits[1]);
}

let dateCurrent = strToDate('03_25_2022');
let dateMax = strToDate('03_30_2022');

console.log(dateMax.getTime() > dateCurrent.getTime())