我想将日期从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选项,但没有任何反应
答案 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"