【问题标题】:How to compare/check two different date formats in javascript [duplicate]如何在javascript中比较/检查两种不同的日期格式[重复]
【发布时间】:2022-01-06 14:07:16
【问题描述】:

我想知道如何在 javascript 中比较任意两个不同的日期字符串。

两个日期字符串 d1 和 d2 的格式始终为 dd mmm yyyyyyyy-mm-dd

如何在javascript中比较日期字符串是否相同 下面是日期字符串的例子,

var d1 = "12 Feb 1990" 
var d2 = "1990-02-12"

if(d1.split(' ').[1] === new Date().toLocaleString('en-US', {month: 'short'})){
  return true;
}
else {
return false
}


【问题讨论】:

    标签: javascript arrays date object date-formatting


    【解决方案1】:

    如果你只想比较日期字符串,那么.toDateString 方法就是你所需要的。类似的东西

    您可以在MDN 上阅读有关toDateString 方法的更多信息

    let d1 = "12 Feb 1990" 
    let d2 = "1990-02-12"
    
    const d1String = new Date(d1).toDateString()
    const d2String = new Date(d2).toDateString()
    if (d1String === d2String) {
      console.log('Equal');
    } else {
      console.log('Not equal');
    }

    【讨论】:

    • “1990-02-12”被解析为 UTC,“1990 年 2 月 12 日”(如果解析正确)不是,因此对于具有正偏移量的用户,它们是不同的本地日期。对于具有负偏移量的用户,它们是不同的 UTC 日期。见Why does Date.parse give incorrect results?
    • 嘿,@RobG 谢谢你的分享。我不知道您是否在否决之前尝试了我的答案?根据 MDN 文档,与 toString 不同,toDateString 返回一致的结果。它忽略时间并仅返回日期字符串,因此时区将无效。提出问题的人要求比较日期字符串而不是日期时间字符串
    • 也许你误解了评论。我已将您的代码转换为可运行的 sn-p。将您的 PC 设置为具有负偏移的时区,结果为“不等于”。如果您的 PC 具有正偏移量,您可以测试 UTC 日期是否不相等。
    • 嘿,Rob,再次感谢您分享此内容。我误解了评论。转换为负偏移量的行为如您所述。我不知道这种行为是这样的,因为我只处理了 +ve 偏移量的天数。今天我学到了一些新东西。
    【解决方案2】:

    以下代码对“1990-02-12”字符串进行重新排序并将其与“1990 年 2 月 12 日”字符串进行比较:

    function d2ToNormalDate(string) {
        return string.split("-")[1] + "-" + string.split("-")[2] + "-" + string.split("-")[0];
    }
    function areDateStringsEqual(string1, string2) { 
        // Expects string1 to be a string like "12 Feb 1990" and
        // expects string2 to be a string like "1990-02-12".
        // returns a boolean.
        return new Date(d2ToNormalDate(string2)).toString() === new Date(string1).toString()
    }
    

    【讨论】:

    • new Date('02-12-1990') 至少在 Safari 中返回无效日期,请参阅Why does Date.parse give incorrect results? 解析字符串以创建另一个字符串,然后由内置解析器解析没有多大意义,解析它一次并将值直接传递给 Date 构造函数。
    猜你喜欢
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2021-10-03
    • 2012-09-02
    相关资源
    最近更新 更多