【问题标题】:How to parse yyyy-MM-dd HH:mm:ss.SSS format date in javascript?如何在javascript中解析yyyy-MM-dd HH:mm:ss.SSS格式日期?
【发布时间】:2016-11-16 15:35:29
【问题描述】:

const time = '2016-11-16 00:00:00.000';
const date = new Date(time);
console.info(date);

似乎 safari 无法解析 yyyy-MM-dd HH:mm:ss.SSS 格式日期(它返回 NaN ),而 chrome 工作正常,我该如何解析?

【问题讨论】:

  • 对于解析日期 moment.js 是最好的库。如果您使用第三方库没有任何问题,您可以使用它
  • 如果你查看 chrome 的输出2016-11-16T00:00:00.000Z,你会看到它在空格中放了一个T,并在最后添加了一个Z,.. 如果 Safari一直很挑剔,也许你也可以这样做。

标签: javascript


【解决方案1】:

我会使用 momentjs 在 javascript 中处理日期。简单的例子:

var time = '2016-11-16 00:00:00.000';
var m = moment.utc(time, "YYYY-MM-DD HH:mm:ss.SSS");
console.log(m)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.16.0/moment-with-locales.min.js"></script>

【讨论】:

    【解决方案2】:

    尝试使用 moment js。 看:moment.js parse with format 例如:

    var mydate = moment("2016-11-16 00:00:00.000", "yyyy-MM-dd HH:mm:ss.SSS").toDate();
    

    没有测试我放在那里的格式,因为 moment.js 可能使用不同的字符串来定义它,但你可以在我上面写的文档链接中看到它

    【讨论】:

      【解决方案3】:

      如果 Safari 对 DataTime 格式很挑剔,你可以做一些简单的字符串替换和连接。

      const time = '2016-11-16 00:00:00.000';
      const date = new Date(time.replace(' ','T') + 'Z');
      console.info(date);

      【讨论】:

        猜你喜欢
        • 2022-11-16
        • 1970-01-01
        • 2021-12-17
        • 2018-07-16
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 2019-08-25
        • 1970-01-01
        相关资源
        最近更新 更多