我正在使用momentjs格式化我的约会。然而,它显示一天休息的日期,我不知道为什么。这是我正在使用的代码:
moment(date).format('MMMM do YYYY, h:mma')
其中date = Sat May 05 2018 00:26:53 GMT-0400 (Eastern Daylight Time)
然而结果是May 6th 2018, 12:26am
- 显示可能是6而不是5。
有谁知道为什么会这样?感谢。
答案 0 :(得分:3)
您在未指定格式的情况下传递非ISO字符串,这将导致控制台出现警告,并可能显示错误的日期。
弃用警告:提供的值不是公认的RFC2822或ISO格式。时刻构造回落到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822 / ISO日期格式,并将在即将发布的主要版本中删除。有关详细信息,请参阅http://momentjs.com/guides/#/warnings/js-date/。
始终将格式作为预防措施。为了解决您的问题,要正确显示日期,您需要使用Do
说明符,而不是do
。前者为日期,但后者为周日。
var date = moment('Sat May 05 2018 00:26:53 GMT-0400 (Eastern Daylight Time)', 'ddd MMM DD YYYY HH:mm:ss');
console.log(date.format('MMMM Do YYYY, h:mma'))

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
&#13;