【问题标题】:How to set language globally for moment.js如何为 moment.js 全局设置语言
【发布时间】:2017-01-11 16:11:17
【问题描述】:

例如:1 天前。我需要设置不同的语言,例如de。有什么建议我该怎么做?

moment(Date.now()).fromNow()

我试过这个:

<script>
    var moment = moment();
    moment.locale('de');
</script>

但得到一个错误:

时刻不是函数

【问题讨论】:

标签: momentjs


【解决方案1】:

查看官方文档changing locale globally

请注意,您必须导入语言环境数据(例如moment-with-locales.min.js

这是一个工作示例:

moment.locale('de');
console.log(moment(Date.now()).fromNow()); //vor ein paar Sekunden
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment-with-locales.min.js"&gt;&lt;/script&gt;

您也可以只使用给定语言环境的数据(例如de):

moment.locale('de');
console.log(moment(Date.now()).fromNow()); //vor ein paar Sekunden
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/locale/de.js"></script>

此外,您正在重新定义代码中的时刻,这是不正确的

var moment = moment();

【讨论】:

  • 例如对于 typescript 或 nodejs 应用程序,您应该在使用 moment.locale('es') 之前使用 require('moment/locale/es')
【解决方案2】:

编辑:在 moment.js 的当前版本中,此解决方案仍然有效,但它会向控制台输出一条消息,指出您应该使用一种名为 updateLocale 的新方法。所以新的解决方案应该是这样的:

更新的解决方案

import moment from 'moment';
import localization from 'moment/locale/fr';

moment.updateLocale('fr', localization);

以前的解决方案

您可以像这样全局更改时刻区域设置:

import moment from 'moment';
import localization from 'moment/locale/fr';

moment.locale('fr', localization);

希望对你有帮助。

【讨论】:

  • 这是我能够获得最新版本来处理本机反应的唯一方法,通过纱线安装时刻
【解决方案3】:

为了构建 Gapur 的答案,我是如何让它工作的(React native)是这样的,

... other imports
import moment from "moment";
import russianLocale from "moment/locale/ru";
import englishLocale from "moment/locale/en-gb";
import chineseLocale from "moment/locale/zh-cn";

const Component = ({ ...props, language }) => {
  moment.locale(language);

... logic

// wherever 'moment' is used, it's displayed in 
// the language that is indicated by the language prop

... other logic

时刻版本 2.24.0

【讨论】:

    【解决方案4】:

    例如我想使用'fa'语言环境

    import moment from 'moment'
    import fa from 'moment/locale/fa'
    
    moment.locale('fa', fa) 
    

    【讨论】:

      猜你喜欢
      • 2021-09-29
      • 2014-12-16
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      相关资源
      最近更新 更多