Как отформатировать строку даты по стране в угловых?

У меня был следующий код, где я получаю данные из ответа 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\"}"
 ]
}

Спасибо

2 ответа

Решение

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

Вы можете использовать только JavaScript, чтобы преобразовать дату в другой язык:

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

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/

Другие вопросы по тегам