我正在使用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?
答案 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()) {
}