dayjs()告诉我这个日期字符串的无效日期

DayJs

如果重要的话,在浏览器上使用它(firefox + Vue + typescript)。

这是我的日期字符串

2021-02-05 12:00 AM

它对我代码中的 AM/PM 大惊小怪:

const dateObj: any = dayjs('2021-02-05 12:00 AM').format('YYYY-MM-DD hh:mm A');

的输出dateObj始终是“无效日期”。如果我从字符串中删除“AM”,它会正确解析。如果我为相同的代码尝试这个在线测试器,输出是

NaN-NaN-NaN NaN:NaN PM

就像我的开发环境一样,如果我删除 AM,那就没问题了。

有任何想法吗?

编辑:在 Chrome 而不是 Firefox 上工作......

回答

Firefox 上的问题

如果你深深看看实现,你会看到上面的一天串通过去Day构造:new Day('2021-02-05 12:00 AM')。不幸的是,FF 不支持这种支持这一天的字符串格式,但 Chrome 支持。

最佳方法

该dayjs文件中提到:

对于解析除 ISO 8601 字符串以外的任何内容的一致结果,您应该使用字符串 + 格式。

如果您仍然热衷于使用上述格式,则必须使用此处提到的插件

基本上,您必须进行如下更改才能在所有浏览器中工作:

import customParseFormat from 'dayjs/plugin/customParseFormat'
import dayjs from "dayjs"

dayjs.extend(customParseFormat)

const yourDate = dayjs('2021-02-05 12:00 AM', 'YYYY-MM-DD HH:mm A')


以上是dayjs()告诉我这个日期字符串的无效日期的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>