【问题标题】:Momentjs not printing seconds in formatted dateMomentjs 未在格式化日期中打印秒数
【发布时间】:2020-02-28 19:43:13
【问题描述】:

我正在尝试将字符串转换为特定格式,但它没有正确打印秒数。请参阅下面的示例

const moment = require('moment')
const convertedTime = moment('Sep 19, 2019 8:24:44 AM', 'lll').format('YYYY-MM-DD hh:mm.ss')
console.log('convertedTime', convertedTime);
// output is
// date 2019-09-19 08:24.00
// why 44 (seconds) is not printing?
// expected output date 2019-09-19 08:24.44

【问题讨论】:

  • 你的格式不对,这个YYYY-MM-DD hh:mm.ss应该是这个YYYY-MM-DD hh:mm:ss,你用的是句号而不是冒号

标签: javascript node.js momentjs


【解决方案1】:

我可能是错的,但我认为“lll”(您的第二个参数)应用格式,我认为分辨率是分钟,这可以解释为什么您的秒为“0”。尝试删除“lll”,看看是否有更好的结果。

【讨论】:

    【解决方案2】:

    我得到了这个工作。

    const convertedTime = moment('Sep 19, 2019 8:24:44 AM', 'MMM D YYYY hh:mm:ss').format('YYYY-MM-DD hh:mm:ss')
    console.log('convertedTime', convertedTime);
    

    【讨论】:

    • 您应该在格式字符串中添加A 以处理AM/PM:MMM D YYYY hh:mm:ss A
    【解决方案3】:

    我认为您的格式已关闭,

    试试:

    const convertedTime = moment('Sep 19, 2019 8:24:44 AM', 'lll').format('YYYY-MM-DD hh:mm:ss')
    

    这应该可以解决问题!

    作为参考,它在主页上说 https://momentjs.com/

    【讨论】:

      【解决方案4】:

      问题在于您的格式。添加“:”而不是“。”在格式结构中。第二个参数“llll”也用于语言环境格式,猜你也可以删除它。

      还添加了用于格式化 AM/PM 的“A”标志

      检查此沙盒:https://codesandbox.io/s/priceless-rosalind-xl212

      const moment = require("moment");
      const convertedTime = moment("Sep 19, 2019 8:24:44 AM").format(
        "YYYY-MM-DD hh:mm:ss A"
      );
      console.log("convertedTime", convertedTime);
      
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 2018-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多