2017-01-19 4 views
0

lの書式設定の瞬間から「M/D/YYYY」の形式で返されます。 ロケールによっては、D/MまたはM/Dの形式で日付を取得する方法はありますか?ここにコードがあります。例えばモーメントはロケールでフォーマットされています

var locale = window.navigator.userLanguage || window.navigator.language; 
moment.locale(locale); 
var momentTime = moment(d); 
console.log(momentTime.format('l')); 

ロケールがFrenchある場合、日付はD/M形式で返されるべきであり、ロケールがenglish-usある場合、日付は自動的M/D形式で返さなければなりません。

+0

[ロケールとMoment.js有する特定の日付フォーマット]の可能な重複(https://stackoverflow.com/questions/27360102/locale-and-specific-date-format-with -moment-js) – SubjectDelta

答えて

2

必要な作業を行うための1つの方法は、ローカライズされたlongDateFormatを取得してから、正規表現を使用して年の部分を削除します。

localeData、次にlongDateFormatを使用する実例です。私はそれが各ロケールでうまくいくかどうかはわかりませんが、fren-us(そしておそらく他の多くの言語)に対して正しい結果が得られます。

var locale = window.navigator.userLanguage || window.navigator.language; 
 
moment.locale(locale); 
 

 
// Get locale data 
 
var localeData = moment.localeData(); 
 
var format = localeData.longDateFormat('L') 
 
// Remove year part 
 
format = format.replace(/.YYYY/, ''); 
 

 
var momentTime = moment(); 
 
console.log(momentTime.format(format));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment-with-locales.min.js"></script>

関連する問題