比较日期给我错误的结果

时间:2016-09-27 15:23:38

标签: javascript node.js typescript

我需要比较startDate和endDate以及if startDate>endDate然后我需要将endDate月份的开始日期作为startDate,假设我的 startDate是"startDate": "2016-05-30T00:00:00.000Z" endDate是"endDate": "2016-06-05T00:00:00.000Z"然后当比较需要得到true但我得到假

代码:

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

正如您在下面的代码段中看到的那样

enter image description here

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

试试这个

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 :(得分:1)

您应该使用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);

答案 2 :(得分:1)

为什么不选择moment.js

查看moment(date1).isAfter(date2);方法。

Date/Time

的所有操作都很容易
if(moment(endDate).isAfter(startDate)){
//Do whatever you want
}
相关问题