NodeJS IF语句中的日期比较

时间:2019-01-23 18:11:36

标签: javascript node.js

我正在使用nodejs / javascript并试图将两个日期相互比较,以便在日期早于设置日期之前应用特定的样式。

这是我所拥有的:

var d = new Date();
var date = d.getMonth()+1+'/'+d.getDate()+'/'+(d.getFullYear().toString().substr(-2)-1);

var da = new Date('1/4/18');
var da_test = da.getMonth()+1+'/'+da.getDate()+'/'+(da.getFullYear().toString().substr(-2));

if(da_test < date) {
    // do something
}

date_test当前返回一年前的日期1/23/18。我将它与之比较的另一个日期设置为1/4/18。尽管这应该是正确的,但是由于某种原因,并不是每当IF语句运行时。但是,如果我将日期更改为类似1/2/18的日期,则它将返回true。情况如何?如何更改,以便在1/23/18之前的任何日期返回true?

2 个答案:

答案 0 :(得分:1)

您可以像这样比较这两个日期:

const d1 = new Date('1/23/18');
const d2 = new Date('1/4/18');
if (d2 < d1) ...

在您的代码示例中,您正在比较两个String

答案 1 :(得分:0)

您可以比较自纪元以来的毫秒数(自1970年1月1日00:00:00以来的毫秒数)

const d1 = new Date('1/23/18');
const d2 = new Date('1/4/18');

if (d2.getTime() < d1.getTime()) {
}

您还可以比较ISO日期字符串

const d1 = new Date('1/23/18');
const d2 = new Date('1/4/18');

if (d2.toISOString() < d1.toISOString()) {
}