【问题标题】:react-intl - FormattedDate - DD/MM/YYYY instead of MM/DD/YYYY (for en-us!)react-intl - FormattedDate - DD/MM/YYYY 而不是 MM/DD/YYYY(用于 en-us!)
【发布时间】:2018-07-02 11:54:53
【问题描述】:

我有一个注入了 react-intl 的应用程序。它的双语 - 英语和波兰语,所以我用 . 表示日期。当我代表 2005 年 4 月 12 日时:

  • 12.04.2005 波兰语

  • 2005 年 4 月 12 日英文版

当人们想到第二个日期是 12 月 4 日时,每个人都会感到困惑。我可以以某种方式格式化日期,所以用英文会是 DD/MM/YYYY 吗?

【问题讨论】:

  • 请注意,MM/DD/YYYY 格式被少数说英语的人使用,并且是美国特有的,而不是一般说英语的人。最好使用使用月份名称的明确格式,例如 DD-MMM-YYYY(例如 12-Jul-2018)或 MMMM D、YYYY(例如 2018 年 7 月 12 日)。

标签: javascript reactjs date react-intl


【解决方案1】:

因此,如果您的应用程序的语言环境运行良好,您只需使用来自react-intl 的 FormattedDate 组件,它将以当前格式显示日期。

假设语言环境已经到位,您只需像这样使用它:

<FormattedDate
    value="12.04.2005"
    day="2-digit"
    month="2-digit"
    year="numeric"
/>

FormattedDate 组件将使用应用程序的语言环境将其格式化为英语或波兰语(或您设置的任何其他语言环境)。 这是reference in the doc

【讨论】:

  • 我认为他在问如何覆盖 en-US。不是默认值....而且似乎 FormattedDate 覆盖很糟糕?没有看到例子。
【解决方案2】:

没有太多的工作,但看看这是否有帮助:

let PolishDate = '12.04.2005';
let arr = PolishDate.split('.');
let EnglishDate = arr[1] + '/' + arr[0] + '/' + arr[2];
console.log(EnglishDate);

【讨论】:

  • 我可以这样做,但是有了这个库,日期会发生变化,然后语言会发生变化,我无法以这种方式对其进行格式化。我正在寻找可能包含在这个库中的某事...... idk
  • 你指的是什么“图书馆”?
  • 他正在使用 react-intl,所以 react-intl 已经通过根据当前语言环境显示日期格式来处理这个问题。
  • @Periback——但当前语言环境的来源是哪里?
  • 您必须将其提供给 intlProvider ..(通过切换按钮或通过您获取并定义它的一些环境设置...)但尽管如此,react-intl 具有您需要的 addLocaleData调用您的应用支持的每个语言环境
猜你喜欢
  • 2017-05-05
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 2020-02-24
  • 1970-01-01
  • 2015-02-11
  • 2016-06-21
  • 1970-01-01
相关资源
最近更新 更多