Как отформатировать строку даты по стране в угловых?
У меня был следующий код, где я получаю данные из ответа 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 ответа
Вы можете использовать только 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')
}
});
Больше информации здесь:
Для всех других продвинутых манипуляций с датами я бы предложил momentJS: https://momentjs.com/