我正在使用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
-显示5月6日,而不是5月5日。
有谁知道为什么会这样吗?谢谢。
最佳答案
您传递的非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>