如何在 moment.js 中更改语言环境

How to change the locale in moment.js

我知道这可能看起来像一个重复的问题,但我无法在我的 React/ES6 设置中使用 moment 更改我的语言环境。

这是我从互联网上收集到的,但它不起作用

import moment from 'moment';
import 'moment/min/locales';

moment.locale('en-gb');
moment('31/08/2021').format('YYYY-MM-DD') \ returns 'Invalid Date'

我哪里错了?

试试这个:

moment('31/08/2021', 'DD-MM-YYYY').format('YYYY-MM-DD')

这可能不是完美的方法,但绝对有效。

    locale = 'en-GB';
    value = '07/06/2021';


    moment.locale(locale);
    const localeData = moment.localeData();
    const format = localeData.longDateFormat('L');
    console.log(moment(value, format).format('YYYY-MM-DD')); // '2021-06-07'

这看起来不像是片刻的区域设置问题。尝试指定正确的输入格式来解析 moment 字符串。

可以在 https://momentjs.com/docs/#/parsing/string/

找到更多信息

console.log(moment("31/08/2021", "DD/MM/YYYY").format("YYYY-MM-DD"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>