如何根据 angular 中的国家格式化日期字符串?

How to format the date string according to the country in angular?

我有以下代码,我从 JSON 响应中获取数据。我想将日期字符串格式 w.r.t 更改为国家语言环境。我正在使用 angular-translate 进行翻译,并在各自的语言环境 json 文件中添加了所有字符串。例如,我想为 es_ES(西班牙语)语言环境添加日期格式 (dd/mm/year),为 en_US 添加日期格式 (mm/dd/year)。我可以在 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\"}"
 ]
}

谢谢

您可以只使用 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/

我正在使用 sugar.js javascript 库进行日期格式化,它还有其他通用功能,例如数字和字符串格式化,这些功能在我的代码库中使用得很好。