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')