Как отформатировать строку даты в соответствии со страной в angular?

У меня был следующий код, где я получаю данные из ответа JSON. Я хочу изменить формат строки даты по отношению к локали страны. Я использую angular-translate для переводов и добавляю все строки в соответствующий файл json локали. Например, я хочу добавить формат даты (дд/мм/год) для локали es_ES (испанский) и (мм/дд/год) для en_US. Могу ли я случайно добавить формат даты в файл Json или как я могу добавить фильтр для формата в самой разметке? Это вообще возможно?

//Sample Html markup
<tr ng-repeat="data in data.list">
<td>{{data.originalDate}}</td>
<td>{{data.expiryDate}}</td>
</tr>          

//sampleJsonResponse
{
"data": [
"{originalDate:\"09/30/2017\",expiryDate:\"10/30/2018\"}"
 ]
}

Спасибо


person rj7999    schedule 21.09.2017    source источник


Ответы (2)


Вы можете использовать только javascript для преобразования даты в другую локаль:

сначала вам нужно будет создать объект даты с помощью (новая дата (ваша дата)):

let date = new Date('10/30/2018');

затем установите дату для конкретной локали, используйте тире вместо подчеркивания

date.toLocaleString('es-ES')

для ваших целей вы можете просто сделать:

new Date(data[0].originalDate).toLocaleString('es-ES')
new Date(data[0].expiryDate).toLocaleString('es-ES')

или сделайте карту для всех данных следующим образом:

data.map(value => {
return { 
originalDate: new Date(value.originalDate).toLocaleString('es-ES'), 
expiryDate: new Date(value.expiryDate).toLocaleString('es-ES')
}
});

Подробнее здесь:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

Для всех других расширенных манипуляций с датами я бы предложил momentJS: https://momentjs.com/

person pegla    schedule 22.09.2017
comment
Спасибо за ваш ответ, узнал новую вещь (дата, toLocaleString). Несмотря на то, что moment.js — хорошая библиотека javascript, я предпочитаю Sugar.js, так как в моем случае он хорошо подходит. - person rj7999; 26.09.2017

Я использую библиотеку javascript sugar.js для форматирования даты, а также другие общие функции, такие как форматирование чисел и строк. который хорошо работает в моей кодовой базе.

person rj7999    schedule 26.09.2017