【问题标题】:How to format a date in Moment.js如何在 Moment.js 中格式化日期
【发布时间】:2016-09-15 17:20:39
【问题描述】:

我在 Moment.js 中正确格式化日期时遇到问题。我正在使用格式为“LLL D, YYYY”的格式函数,所以它应该返回类似“2016 年 9 月 15 日”的内容。

相反,它以一种奇怪的格式返回日期,例如“2016 年 9 月 15 日 2016 年 12 月 15 日上午 12:00”。

这是我的代码,下面是调试信息。

moment.locale(picker.options.language);

console.log('picker.options.language:');
console.log(picker.options.language);

formatted = moment(picker.date).format(picker.format);

console.log('picker.date:');
console.log(picker.date);

console.log('picker.format:');
console.log(picker.format);

console.log('formatted:');
console.log(formatted);

以及上面代码的控制台输出:

【问题讨论】:

    标签: javascript momentjs angular-moment


    【解决方案1】:

    这应该可以...

    formatted = moment(picker.date).format('MMM D, YYYY')
    

    参考:http://momentjs.com/docs/#/parsing/string-format/

    【讨论】:

      【解决方案2】:

      http://momentjs.com/docs/#/displaying/format/我们可以看出,“LLL”代表了“月名、月日、年、时间”的格式。您似乎想要“月日,年”,即“LL”。

      试试:

      picker.format = 'LL';
      formatted = moment(picker.date).format(picker.format);
      console.log(formatted);
      

      输出(带有今天的日期):

      September 15, 2016
      

      【讨论】:

      • 除了LL没有昏迷我同意
      • 谢谢。这种格式远在 PHP 的 IntlDateFormatter::defaultDateFormats[self::MEDIUM] 的上游。
      猜你喜欢
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多