我的日期格式为 2017-03-29T06:45:00.000Z,如何检查它是否等于或小于现在的日期和时间?
如果我检查
var currentTime = new Date();
if("2017-03-29T06:45:00.000Z" <= currentTime){
它不正确,因为当前日期的格式为Wed Mar 29 2017 08:59:18 GMT+0200(CEST)
任何意见表示赞赏,谢谢
最佳答案
您正在尝试将字符串与Date
对象进行比较。由于这两种数据类型不匹配,因此 javascript 会尝试按值比较它们并调用 currentTime.valueOf()
。其计算结果为一个整数,如 1490781568805
。然后 JavaScript 尝试将字符串与计算出的整数进行比较。结果是different than you might expect ,因为字符串的各个字符代码与整数进行比较。
"2017-03-29T06:45:00.000Z" <= new Date() // string compared to the Date object
"2017-03-29T06:45:00.000Z" <= new Date().valueOf() // javascript trying get a value for the date object
"2017-03-29T06:45:00.000Z" <= 1490781568805 // evaluates to false
您可以使用 Date.parse() 将日期字符串解析为 Date 对象
Date.parse("2017-03-29T06:45:00.000Z") <= new Date() // two Date objects are compared
关于javascript - 如何检查 2017-03-29T06 :45:00. 000Z 是否等于现在的日期和时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43086509/