【发布时间】:2021-03-02 11:30:46
【问题描述】:
我有 3 个相同格式的日期时间。这 3 个 dateTimes 在不同的时间有相同的日期。
var orgstartdatetime = 'Mon Jan 01 1900 10:00:00 GMT+0519 (India Standard Time)';
var orgenddatetime = 'Mon Jan 01 1900 12:00:00 GMT+0519 (India Standard Time)';
var newdatetime = 'Mon Jan 01 1900 10:30:00 GMT+0519 (India Standard Time)';
我想比较 newdatetime 介于 orgstartdatetime 和 orgenddatetime 之间。
我试过这三种方法。但这些都不起作用。
if (orgstartdatetime.getTime() <= newdatetime.getTime() < orgenddatetime.getTime() ) {
console.log('conflit');
}
if (orgstartdatetime.valueOf() <= newdatetime.valueOf() < orgenddatetime.valueOf() ) {
console.log('conflit');
}
if (+orgstartdatetime <= +newdatetime < +orgenddatetime ) {
console.log('conflit');
}
请帮助我满足这个条件。 谢谢
【问题讨论】:
-
您有字符串,而不是
Date实例,因此您不能使用getTime()。将它们转换为数字也行不通。也不会进行任何类型的字符串比较,因为月份名称不是按字母顺序排列的。您唯一真正的选择是将它们解析为Date实例 -
你检查控制台或输出的错误了吗?
-
你不能像这样链接比较运算符。如果你想做
a <= b < c,你必须分别以a <= b && b < c进行比较。由于时间戳符合为Date.prototype.toString 指定的格式,它们可以被内置解析器解析并直接比较。
标签: javascript jquery datetime