在moment.js中将fr月份转换为月份

时间:2016-07-25 12:29:50

标签: javascript momentjs

我想将日期从fr转换为en然后再转换为fr使用moment.js库,日期类似于10,Avril 2016,但我想将其记录为2016年4月11日,然后将其转换回来到了10,Avril 2016,我怎么能做到moment.js。以下是代码。

收到日期:10,Avril 2016

moment.locale('en'); 
if(moment(date, 'D, MMM YYYY', true).isValid()) {
   console.log(moment(date, 'D, MMM YYYY')) // I want to show en date 10, April 2016
   console.log() // I want to convert back again and show fr date 10, Avril 2016
}

我使用了moment.js的locale选项,但没有任何反应

2 个答案:

答案 0 :(得分:1)

您可以使用locale方法在本地更改区域设置。这将仅更改给定实例的区域设置,而moment.locale(String)将全局更改它。

解析字符串以将其转换为时刻对象时,可以使用时刻constructor specifying locale

moment(String, String, String, Boolean);

您可以使用以下代码作为示例:

var date = '10, Avril 2016';
// Parsing string using locale 'fr'
var mom = moment(date, 'D, MMMM YYYY', 'fr', true);
if(mom.isValid()) {
   // Displaying date in french
   console.log(mom.locale('fr').format('D, MMMM YYYY')); // 10, avril 2016
   // Displaying date in english
   console.log(mom.locale('en').format('D, MMMM YYYY')); // 10, April 2016
}
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment-with-locales.min.js"></script>

答案 1 :(得分:0)

我认为将日期转换为毫秒更容易,然后你可以在多位置中使用日期:

var z = moment(date, 'D, MMMM YYYY').valueOf()

moment(z).format("D, MMMM YYYY");
"10, avril 2016"
moment.locale('en'); 
"en"
moment(z).format("D, MMMM YYYY")
"10, April 2016"
moment.locale('fr'); 
"fr"
moment(z).format("D, MMMM YYYY")
"10, avril 2016"