Javascript 比较给我错误结果的日期

Javascript 比较给我错误结果的日期,javascript,node.js,typescript,Javascript,Node.js,Typescript,我需要比较startDate和endDate,如果startDate>endDate,那么我需要将endDate月份的开始日期作为startDate startDate是“startDate:“2016-05-30T00:00:00.000Z”结束日期是“endDate:“2016-06-05T00:00:00.000Z”然后在比较时需要得到true,但我得到false 代码: 正如您在下面的代码片段中所看到的 任何帮助都将不胜感激。试试这个 var c = new Date(nestedOb

我需要比较startDate和endDate,如果
startDate>endDate
,那么我需要将endDate月份的开始日期作为startDate startDate是
“startDate:“2016-05-30T00:00:00.000Z”
结束日期是
“endDate:“2016-06-05T00:00:00.000Z”
然后在比较时需要得到
true
,但我得到false

代码:

正如您在下面的代码片段中所看到的

任何帮助都将不胜感激。

试试这个

var c = new Date(nestedObj.startDate)
console.log("startdate"+" "+c);
var d=new Date(nestedObj.endDate);
console.log("endtdate"+" "+d);
console.log(c>d);
试试这个

var c = new Date(nestedObj.startDate)
console.log("startdate"+" "+c);
var d=new Date(nestedObj.endDate);
console.log("endtdate"+" "+d);
console.log(c>d);

您应该使用
getTime()
函数,而不是
getDate()
getTime()
返回易于比较的编号(历元时间)。下面是可能对您有所帮助的代码

var c = new Date(nestedObj.startDate).getTime();
console.log("startdate " + c);
var d = new Date(nestedObj.endDate).getTime();
console.log("endtdate " + d);
console.log(c>d);
甚至您也可以直接比较
Date
对象,如下所示

var c = new Date(nestedObj.startDate);
console.log("startdate " + c);
var d = new Date(nestedObj.endDate);
console.log("endtdate " + d);
console.log(c>d);

您应该使用
getTime()
函数,而不是
getDate()
getTime()
返回易于比较的编号(历元时间)。下面是可能对您有所帮助的代码

var c = new Date(nestedObj.startDate).getTime();
console.log("startdate " + c);
var d = new Date(nestedObj.endDate).getTime();
console.log("endtdate " + d);
console.log(c>d);
甚至您也可以直接比较
Date
对象,如下所示

var c = new Date(nestedObj.startDate);
console.log("startdate " + c);
var d = new Date(nestedObj.endDate);
console.log("endtdate " + d);
console.log(c>d);
为什么不一起去呢

查看
时刻(日期1)。isAfter(日期2)方法

执行日期/时间的所有操作都很容易

if(moment(endDate).isAfter(startDate)){
//Do whatever you want
}
为什么不一起去呢

查看
时刻(日期1)。isAfter(日期2)方法

执行日期/时间的所有操作都很容易

if(moment(endDate).isAfter(startDate)){
//Do whatever you want
}

您只提供您的结果,请提供您的code@t3__rry请仔细阅读我更新的问题好吧,你只是在比较天,但是endDate确实比startDate大(一个月后)。getDate()返回天整数1..31,因此30比5大。你需要比较日期对象。看看这个线程:你只提供你的结果,请提供你的code@t3__rry请仔细阅读我更新的问题好吧,你只是在比较天,但是endDate确实比startDate大(一个月后)。getDate()返回天整数1..31,因此30比5大。你需要比较日期对象。看看这个线程:当我输入(c)和(d)时,我得到一个数字。所以我认为这不应该给我错误的答案,当我输入(c)和(d)时,我会得到一个数字。所以我认为这不应该再给我同样的东西,我又错了result@Shikhathakur你不是,你的开始日期总是早于结束日期,看看这个月。同样的事情我又错了result@Shikhathakur你不是,你的开始日期总是早于结束日期,看看这个月。