如何比较 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())
我有两个特定格式(字符串)的日期。我需要验证当前日期是否低于允许的最大日期:
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())