比较从函数和生成的日期对象
Comparing date object generated from a function and
我正在尝试比较两个日期:
var date = new Date('Mon May 11 2000 00:00:00 GMT+0200 (CEST)');
var processedDate = new Date(new Date(date.setHours(23,59,59,999)).setDate(date.getDate() -1));
和
var otherDate = new Date('Wed May 10 2000 23:59:59:999 GMT+0200 (CEST)');
console.log记录日期可以得到完全相同的输出,但是,以下语句不能解析为true:
if (otherDate === processedDate) {
console.log('equal dates');
}
参见以下小提琴:
https://jsfiddle.net/mgvx613d/
您无法比较Object。请尝试以下操作:
if (otherDate.toString() === processedDate.toString()) {
console.log('equal dates');
}
简单回答:不能通过等式直接比较对象。从凌晨2点开始的更长答案:
对象具有唯一的身份,并通过引用进行比较:通过构造函数或文字等表达式创建的每个对象都被认为与其他对象不同;可以通过等式运算符(==)观察到的事实。该操作符通过引用比较对象:只有当两个对象具有相同的标识时,它们才相等。它们是否具有相同的内容并不重要。
> {} === {}
false
> var obj = {};
> obj === obj
true
但是,您可以使用Date
方法getTime()
来比较两个日期的毫秒值:
if (otherDate.getTime() === processedDate.getTime()) {
console.log('equal dates');
}
相关文章:
- 比较从函数和生成的日期对象
- 如何获得一个只有时间的moment.js日期对象
- 使用moment.js获取时间分区的偏移日期对象
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 将某个时间格式转换为日期对象
- 正在使用日期字符串初始化javascript日期对象
- 在CouchDB Map函数中发出日期时-对日期对象调用的内容
- 如何将事件的日期放入fullcalendar中的日期对象中
- 为什么在JavaScript中可以从另一个日期对象中减去日期对象
- 理解日期对象接收参数时的getDay()方法
- JS日期对象setUTCMonth()将月份增加2
- 时间-日期对象JavaScript getUTCMilliseconds
- 将带有 AM/PM 的日期字符串转换为 javascript 日期对象
- Javascript 测试中的假日期对象
- 转换/格式化日期对象
- 如何在发布JavaScript日期对象时保留时区偏移量
- JS日期对象在某个范围内的百分比
- 无法从日期对象javascript获取日期和月份
- javascript日期对象未返回正确的日期
- Javascript日期对象-JSFiddle中的不同值