Javascript 日期未显示为相等,尽管 getTime() 函数显示日期相等

Javascript dates not shown as equal, despite getTime() function showing the dates ARE equal

本文关键字:显示 日期 getTime 函数 Javascript 尽管      更新时间:2023-09-26

我在某处读到你不能使用日期对象比较Javascript日期,但你可以使用getTime()。

这主要对我有用,除了一个约会。这是我的代码:

if (d1.getTime() != d2.getTime()) {
    // Dates are not equal, new data present
    Logger.log(d1); // Fri Jul 17 08:15:14 GMT+02:00 2015
    Logger.log(d2); // Fri Jul 17 08:15:14 GMT+02:00 2015
}

对我来说,这些看起来完全一样。

正在解析的电子表格上的其他 308 行也显示为相等。

== 编辑 ==

比较日期的毫秒数,它们实际上是不相等的。这是荒谬的,就好像它们不相等一样,然后将新日期插入到 CouchDB 中,并成为下一次脚本运行时要比较的日期(不更改日期)。因此,在这种情况下,CouchDB 必须截断毫秒。

可以以毫秒为单位存在差异。查看以下示例以供参考:

var d1 = new Date();
var d2 = new Date();
d2.setMilliseconds(d2.getMilliseconds() + 2);
console.log(+d1, +d2);
console.log(d1, d2);
console.log(+d1 === +d2);

当你使用getTime时,你会得到一毫秒的时间戳。因此,只有当它们引用相同的毫秒时间戳时,它们才会相等。如果您有兴趣比较它们的字符串表示形式:

d1.toString() === d2.toString()

编辑:对不起,之前格式错误。