在javascript中匹配两个日期时间不起作用

在javascript中匹配两个日期时间不起作用,javascript,jquery,datetime,Javascript,Jquery,Datetime,我有两个约会: date1=“2013-07-08 12:30:00” date2=“2013-07-08 13:30:00” 现在在javascript中,我想匹配这两个日期,如果它们不匹配,我想删除约会,如果它们匹配,我就什么都不做 我尝试了此代码,但不起作用: if(date1 == date2)// Event already exists { // do nothing } else { // delete the record. }

我有两个约会:

date1=“2013-07-08 12:30:00”

date2=“2013-07-08 13:30:00”

现在在javascript中,我想匹配这两个日期,如果它们不匹配,我想删除约会,如果它们匹配,我就什么都不做

我尝试了此代码,但不起作用:

  if(date1 == date2)// Event already exists
  {
      // do nothing
  }
  else
  {
      // delete the record.
  }
我试着和“newdate(date1)==newdate(date2)”进行比较,但它也不起作用

我的代码或日期格式有问题。有人知道怎么做吗?我的代码哪里错了


提前感谢。

两个不同的对象永远不会相同,您必须比较构成unix时间戳的数字:

var date1 = "2013-07-08 12:30:00",
    date2 = "2013-07-08 13:30:00";

var d1 = new Date(date1);
var d2 = new Date(date2);

if (d1.getTime() == d2.getTime()) {

}

这对我很有用:

var date1 = "2013-07-08 12:30:00";

var date2 = "2013-07-08 12:30:00";
var date3 = "2013-07-08 12:00:00";

console.log(date1 == date2); //true
console.log(date1 == date3); //false

Adeno有一个有效的答案,但如果日期为毫秒,则将失败(在OP的示例中,如果使用有效的日期字符串,则情况并非如此)。为确保按分钟或天数比较日期,您可以执行以下操作:

function sameTime(dt1,dt2){
  //round the dates to the minutes
  var t1=new Date(dt1);
  var t2=new Date(dt2);
  t1.setSeconds(0,0);
  t2.setSeconds(0,0);
  return t1.toString()===t2.toString();
}
function sameDay(dt1,dt2){
  //round the dates to the day
  var t1=new Date(dt1);
  var t2=new Date(dt2);
  t1.setHours(0,0,0,0);
  t2.setHours(0,0,0,0);
  return t1.toString()===t2.toString();
}
function sameMonth(dt1,dt2){
  //round the dates to the month
  var t1=new Date(dt1);
  var t2=new Date(dt2);
  t1.setHours(0,0,0,0);
  t2.setHours(0,0,0,0);
  t1.setDate(1);
  t2.setDate(1);
  return t1.toString()===t2.toString();
}
var date1 = "2013-07-08T12:30:00",
    date2 = "2013-07-08T13:30:00";
var d1 = new Date(date1);
var d2 = new Date(date2);

console.log(sameTime(d1,d2));//precise to the minute
console.log(sameDay(d1,d2));//precise to the day
console.log(sameMonth(d1,d2));//precise to the month

这两个日期永远不相等,因为它不仅检查日期,还检查时间。。所以,当它们被转换为DateTime对象时,它永远不会匹配什么“不工作”?当作为字符串进行比较时,您提供的值对我来说效果很好。请尝试2013/07/08 12:30:00,而不是2013-07-08 12:30:00,也可以尝试与>或<而不是==进行比较。实际上,我的意思是从date2中减去date1并比较差异。但是@adeneo的答案似乎不错,谢谢adeneo。但它总是给我虚假的信息。@Mausami它应该,12:30和13:30不一样是的,对不起。这是我的错。。非常感谢HMR和adeneo。命名变量date并不会使它们成为日期对象。当比较primative类型时,您应该使用===请根据您的选择更改变量的名称,并使用===,现在检查它是否给出了答案。请使用我提供的小提琴链接