MomentJS带有反应语言

时间:2017-07-28 19:25:43

标签: javascript reactjs momentjs

我正在使用片刻JS和React,我在更改语言方面遇到了问题。当我输入moment.lang('pl')moment.locale('pl')然后moment.format('MMMM')时,它只显示英文月份。有什么办法可以解决吗?

代码

import React, {Component} from 'react';
import moment from 'moment';


class Time extends Component {
    constructor(props) {
        super(props);


        this.state = {}
    }


    render() {

        let march = moment();

        moment.lang('pl');

        console.log(march.format('MMMM'));

        return (
            <div>
                <div className="time">
                    <br/>
                </div>
            </div>
        )
    }
}
export default Time;

2 个答案:

答案 0 :(得分:3)

问题是你在得到时间后设置了语言。

要修复它,只需像这样交换线:

import 'moment/locale/pl'// add this line below your moment import

moment.lang('pl');
let march = moment();

这也是我在回答你之前尝试的一个例子。

import moment from 'moment';
import 'moment/locale/pl'

let a = moment();

moment.locale('pl')
let b = moment();

console.log(a.format('MMMM')); //July
console.log(b.format('MMMM')); //lipiec

实际上,moment.lang 在版本2.8.0之后已弃用(对于Yarn或NPM,这似乎在我尝试的2.10之后已经弃用)。如果您使用的是更高版本,请改用moment.locale

此处提供更多信息:http://momentjs.com/docs/#/i18n/

答案 1 :(得分:1)

只需添加到Natsathorn的答案中,您就可以使用来动态导入

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