2017-01-19 3 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

Один из способов сделать то, что вам нужно, - локализовать longDateFormat, а затем удалить часть года с регулярным выражением.

Здесь приведен рабочий пример, который использует localeData, а затем longDateFormat. Я не уверен, что он будет работать для каждого региона, но он дает правильный результат для fr и en-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>