繁体   English   中英

使用 moment.js 的日期格式

[英]Date format using moments.js

this.state.date = "20190704153907"   
 moment(this.state.date).format("DD MMMM YYYY hh:mm:ss")

我收到无效日期

我尝试了不同的格式 stll 显示相同

预期输出:

4 July 2019 15:39:07

您的日期确实无效。 检查解析文档

您可以尝试通过正则表达式修改它以匹配已知的日期模式或等效项。

如果您查看控制台,您会看到来自 Moment 的警告:

弃用警告:提供的值不是公认的 RFC2822 或 ISO 格式。 moment 构造回退到 js Date(),这在所有浏览器和版本中都不可靠。 不鼓励使用非 RFC2822/ISO 日期格式,并将在即将发布的主要版本中删除。 请参阅http://momentjs.com/guides/#/warnings/js-date/了解更多信息。

您用于日期字符串的格式不是 ISO 格式,并且可能不受任何“特定实现的启发式或特定于实现的日期格式”的支持¹ 允许 JavaScript 引擎用来猜测什么你的意思是。

解决方案是告诉 Moment 格式

 const date = "20190704153907"; const m = moment(date, "YYYYMMDDHHmmss"); console.log(m.format("DD MMMM YYYY hh:mm:ss"));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

请注意,输出04 ,而不是4在你预期的输出。 如果您想要4而不是04 ,请删除format字符串中的D之一(例如, .format(..., "D MMMM YYYY hh:mm:ss") ):

 const date = "20190704153907"; const m = moment(date, "YYYYMMDDHHmmss"); console.log(m.format("D MMMM YYYY hh:mm:ss"));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>


¹ https://tc39.es/ecma262/#sec-date.parse

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM