Vergleichen Sie JavaScript-Datumsobjekte
P粉724737511
2023-08-03 17:28:16
<p>Beim Vergleich von Datumsobjekten in JavaScript habe ich festgestellt, dass selbst beim Vergleich identischer Datumsangaben nicht „true“ zurückgegeben wird. </p>
<pre class="brush:php;toolbar:false;">var startDate1 = new Date("10.02.2012");
var startDate2 = neues Datum("10.01.2012");
var startDate3 = neues Datum("10.01.2012");
Alert(startDate1>startDate2); // true
Alert(startDate2==startDate3); //false</pre>
<p>Wie vergleiche ich diese Daten auf Gleichheit? Ich möchte ein natives JavaScript-Datumsobjekt anstelle einer Bibliothek eines Drittanbieters verwenden, da es nicht angemessen ist, eine JavaScript-Bibliothek eines Drittanbieters nur zum Vergleichen von Datumsangaben zu verwenden. </p>
使用 getTime() 方法比较日期,它返回从纪元开始的毫秒数(即一个数字)进行比较:
另外,请考虑使用显式的年份/月份/日期数字来构造 Date 对象,而不是依赖于字符串表示(参见:Date.parse())。并且请记住,JavaScript 中的日期始终使用客户端(浏览器)的时区表示。
这是因为在第二种情况下,实际的日期对象被比较,而两个对象永远不会相等。将它们强制转换为数字:
如果您想要更明确地将其转换为数字,可以使用以下方法之一:
o或者
是参考规范的 §11.9.3 抽象相等比较算法,基本上它说当比较对象时,只有当 obj1 == obj2 引用同一个对象时才为真,否则结果为假。