【问题标题】:React - change date format [duplicate]React - 更改日期格式[重复]
【发布时间】:2020-07-23 11:18:06
【问题描述】:

我正在尝试读取 CSV 文件。 文件中的日期格式为“DD-MMM-YY”。 当我尝试阅读此内容时,我收到了无效的日期错误。 20 年 4 月 1 日 - 我们如何在反应中阅读此内容?

谢谢 提前!

【问题讨论】:

  • 发布你已经做过的事情
  • 你在使用 javascript 日期对象吗? new Date("01-Apr-20").toLocaleDateString()
  • 新日期('01-Apr-20','dd-MMM-yy')
  • 是的,日期在 Chrome 中解析,但在 Firefox 中没有。为此使用日期库可能会很好。时刻很好。我个人更喜欢 date-fns date-fns.org/v2.15.0/docs/parse

标签: javascript reactjs date date-format


【解决方案1】:

如果您负担得起使用外部库,您可以使用moment.js

然后,要读取这些日期,只需使用以下行:

moment('01-Apr-20', 'DD-MMM-YY')

它返回一个时刻对象(基本上像一个日期对象),具有很多功能。


安装:

Node.js / npm:npm install moment,然后使用require()import moment from 'moment' 导入。

Vanilla javascript:将以下脚本标签添加到您的 html 代码中:<script src="https://momentjs.com/downloads/moment.js"></script>

【讨论】:

  • 我会为任何想在本地安装之前尝试一下的人添加评论:转到 momentjs.com 并打开 devtools 控制台 (F12)。 moment-关键字在全球范围内可用于测试。
  • 我们如何导入时刻?
  • 出现错误:未定义时刻,npm install moment -done
  • 安装moment:如果您使用的是node/npm,那么只需执行npm install moment,然后使用require()import moment from 'moment' 导入它。如果您使用的是原版 javascript,只需将以下脚本标签添加到您的 html 代码:<script src="https://momentjs.com/downloads/moment.js"></script>。希望这可以帮助。 PS:如果成功,记得将答案标记为正确!
【解决方案2】:

您不需要添加额外的第二个参数。只有第一个参数 date 足以将其转换为 javascript 日期类型对象。 new Date('01-Apr-20')

如果您需要以任何特定格式显示它,您可以使用日期库包,例如 luxon(尺寸更小的优点)

https://moment.github.io/luxon/docs/manual/formatting.html#presets

【讨论】:

  • '01-Apr-20' 不是 ECMA-262 支持的格式,因此解析取决于实现。请参阅Why does Date.parse give incorrect results? 特别是,解析两位数年份是有问题的:new Date('01/02/90') 可能返回 1990 年 1 月 2 日的日期,而不是 2090 年 2 月 1 日(这是我的理解)。此外,new Date('01-Apr-20') 在 Firefox 中返回无效日期。
  • 说得对@RobG,解析依赖于实现。
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 2013-05-24
  • 1970-01-01
相关资源
最近更新 更多