【问题标题】:dayjs() telling me invalid date for this date stringdayjs() 告诉我这个日期字符串的日期无效
【发布时间】:2021-04-26 14:11:57
【问题描述】:

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”,它会正确解析。如果我尝试this online tester 获取相同的代码,则输出为

NaN-NaN-NaN NaN:NaN PM

就像我的开发环境一样,如果我删除 AM,就可以了。

有什么想法吗?

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

【问题讨论】:

  • 我在您链接的测试仪中收到2021-02-05 12:00 AM。我用dayjs('2021-02-05 12:00 AM').format('YYYY-MM-DD hh:mm A')
  • @Ouroborus Weird,这是我的结果截图:i.imgur.com/WrtSk9Z.png 编辑:似乎在 Chrome 而不是 FF 上工作???

标签: javascript typescript vue.js date dayjs


【解决方案1】:

Firefox 问题

如果您深入研究实现,您会看到上面的日期字符串通过Day 构造函数:new Day('2021-02-05 12:00 AM')。不幸的是,FF 不支持这种支持今天的字符串格式,但 Chrome 支持。

最佳方法

dayjs documentation 提到:

为了获得一致的结果解析除 ISO 8601 字符串之外的任何内容,您应该使用字符串 + 格式。

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

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

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

【讨论】:

    猜你喜欢
    • 2022-11-29
    • 2011-08-19
    • 2023-03-16
    • 1970-01-01
    • 2016-11-04
    • 2016-02-20
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多