【问题标题】:JavaScript Converting 'Thu May 06 2021 15:26:32 GMT-0400' to 'MM/DD/YYYY 00:00 AM/PM'JavaScript 将 'Thu May 06 2021 15:26:32 GMT-0400' 转换为 'MM/DD/YYYY 00:00 AM/PM'
【发布时间】:2021-07-29 03:59:44
【问题描述】:

对于日期比较,我有一个以这种格式返回日期的对象:

Thu May 06 2021 17:00:00 GMT-0400 (Eastern Daylight Time)

我该如何将这个日期翻译成这种格式?

 05/06/2021 5:00 PM

【问题讨论】:

  • 如果你在做 Date Comparison 你想使用日期 Objects 或原始时间戳——你不应该关心显示格式。如果您的对象“以这种格式返回日期”,则应将其解析为 Date 对象,或者,如果可以,将返回类型更改为 Date 而不是字符串。

标签: javascript date sorting filter


【解决方案1】:

有几种方法可以做到这一点。在删除时区信息后,您可以将该字符串传递给Date 构造函数。但是规范不保证日期字符串会被正确解释,因为它不符合 ISO 8601 标准(请参阅Date Time Format in ECMAScript spec)。

所以要完全控制转换,您可以应用字符串操作而不使用Date 构造函数:

const formatDate = str =>
    str.replace(/\w+ (\w+) (\d+) (\d+) (\d+):(\d+).*/, (_, M, d, y, h, m) =>
        `${
            1+"JanFebMarAprMayJunJulAugSepOctNovDec".indexOf(M)/3
        }/${d}/${y} ${h % 12 || 12}:${m} ${"AP"[+(+h > 11)]}M`
        .replace(/\b\d\//, "0$&")
    );

// Demo
let s = "Thu May 06 2021 17:00:00 GMT-0400 (Eastern Daylight Time)"
let result = formatDate(s);

console.log(result);

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多