【问题标题】:How to change locale in momentJS?如何在 momentJS 中更改语言环境?
【发布时间】:2018-07-09 20:26:09
【问题描述】:

这是我拥有的,但它不起作用。

import moment from 'moment'
import 'moment/min/moment-with-locales'
import 'moment-duration-format' // used by moment

componentDidMount () {
  console.log(moment.locale())
  console.log(moment.locale('zh-cn')) 
  console.log(moment.locale()) 
}

控制台日志输出: 恩恩恩

预期的控制台日志输出:en、zh-cn、zh-cn

当我尝试将 import moment 从 'moment' 更改为 import moment from 'moment/min/moment-with-locales' 但它在这一行引发错误:

const total = moment.duration(this.props.stoveUsage.total, 'seconds').format('H:mm', { trim: false }) 

错误:momentWithLocales2.default.duration(...).format 不是函数

【问题讨论】:

  • 我不确定import 'moment/min/moment-with-locales' 是导入语言环境的有效方法,也许您可​​以尝试用import 'moment/locale/zh-cn 替换它,如here 所示。

标签: react-native momentjs


【解决方案1】:

只需添加到 Nicoyuste 的答案,您就可以使用动态导入它

import(`moment/locale/${navigator.language.toLocaleLowerCase()}`).then();

【讨论】:

    【解决方案2】:

    您需要做的就是导入您要使用的语言环境。在我的示例中,我想确保所有日期都是西班牙语,这就是我所做的:

    import moment from 'moment';
    import 'moment/locale/es';
    

    然后只要你需要它就去做:

    moment.locale('es')
    moment(date).format("DD - MMMM - YYYY"
    

    输出将是:

    19 - julio - 2018
    

    我猜你必须在你的应用程序中导入尽可能多的语言环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2012-08-18
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多