【问题标题】:Comparing dateTimes in JavaScript is not working [duplicate]比较 JavaScript 中的 dateTimes 不起作用[重复]
【发布时间】: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 &lt;= b &lt; c,你必须分别以a &lt;= b &amp;&amp; b &lt; c 进行比较。由于时间戳符合为Date.prototype.toString 指定的格式,它们可以被内置解析器解析并直接比较。

标签: javascript jquery datetime


【解决方案1】:

你首先需要创建一个 Date 对象来访问 getTime() 方法,试试这个:

var orgstartdatetime = new Date('Mon Jan 01 1900 10:00:00 GMT+0519 (India Standard Time)');

【讨论】:

    猜你喜欢
    • 2017-06-20
    • 2023-03-28
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多