【问题标题】:How could I make this date format in javascript: 2021-03-20T15:59:13+01:00 [duplicate]我怎么能在javascript中制作这种日期格式:2021-03-20T15:59:13+01:00 [重复]
【发布时间】:2021-03-20 15:02:00
【问题描述】:

我们在我们的应用程序中使用这种日期格式:2021-03-20T15:42:02+01:00,但我无法使用纯 javascript。

过去我们使用moment.js,但我想避免它。

现在,语法如下:

moment().format()
//output: 2021-03-20T15:59:13+01:00

这是我在纯 js 中找到的最接近的...

new Date().toISOString()
//output: 2021-03-20T14:59:13.595Z

是否有一种“简单”的方法来实现与上述相同的格式?

【问题讨论】:

    标签: javascript date timestamp


    【解决方案1】:

    对于日期/时间部分,最安全的方法是使用 Date get 方法从其各个组件构建字符串,对于 UTC 偏移后缀,您将获得时区偏移,并将其转换为 hh:毫米格式:

    function localeFormat(date) {
        var offsetMinutes = date.getTimezoneOffset();
        var offset = Math.abs(offsetMinutes);
        return (date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDay()
             + "T" + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds()
            + (offsetMinutes > 0 ? "-" : "+")
            + Math.floor(offset/60) + ":" + Math.abs(offset % 60)
            ).replace(/(\D)(\d)(?!\d)/g, "$10$2");
    }
    
    console.log(localeFormat(new Date()));

    在 IE9、10 和 11、当前 Edge、Firefox 和 Chrome 版本上测试。

    【讨论】:

    • 这是answer 中详细说明的方法,来自标记的副本。
    • 那个答案不涉及偏移后缀(“+01:00”),@pilchard,这是针对这个问题的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多