【问题标题】:How can I compare if two dates in JS are equal? [duplicate]如果JS中的两个日期相等,如何比较? [复制]
【发布时间】:2016-01-05 02:13:32
【问题描述】:

我在一个表格中有两个日期:

var date = Wed Oct 07 2015 19:48:08 GMT+0200 (Central European Daylight Time);

var dateOne = new Date(date);
var dateTwo = new Date();

if (dateOne == dateTwo )
    alert ("equals");
else{
    alert("not equal");
}

即使我将客户网站上的日期设置为Wed Oct 07 2015 19:48:08 GMT+0200 (Central European Daylight Time),我仍然收到not equal...

即使我这样做:

var data1 = new Date();
var data2 = new Date();



if (data1 == data2)
    alert ("equals");
else{
    alert("not equal");
}

not equal 再次出现。我做错了什么?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    可能它们以毫秒为单位不同。如果您不需要该精度,请在比较之前修剪毫秒。

    date1.setMilliseconds(0); date2.setMilliseconds(0);

    【讨论】:

    • 在这种情况下,我该如何在几毫秒内修剪它们?我只对以秒为单位的精度比较日期和时间感兴趣...
    • 我更新了答案。
    【解决方案2】:

    每次调用 Date() 都会得到不同的日期,因为时间在流逝。如果您设置 date2 = date1,那么只有这样它们才会相等。日期包含毫秒部分。

    【讨论】:

      【解决方案3】:

      当您将对象与== 进行比较时,它会检查它们是否是相同的对象,而不仅仅是相同的值。

      你可以尝试获取它们之间的差异,看看是否为0:

      if (data1-data2 === 0)
          alert ("equals");
      else{
          alert("not equal");
      }
      

      【讨论】:

        猜你喜欢
        • 2013-05-30
        • 1970-01-01
        • 1970-01-01
        • 2011-12-20
        • 1970-01-01
        • 1970-01-01
        • 2011-01-13
        相关资源
        最近更新 更多