【问题标题】:How to format the date string according to the country in angular?如何根据国家/地区以角度格式化日期字符串?
【发布时间】:2017-09-21 21:35:05
【问题描述】:

我有以下代码,我从 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\"}"
 ]
}

谢谢

【问题讨论】:

    标签: angularjs date date-format angular-translate angular-date-format


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答,学到了新东西(日期,toLocaleString)。虽然 moment.js 是一个很好的 javascript 库,但我会使用 Sugar.js,因为它在我的情况下非常有用。
    【解决方案2】:

    我正在使用sugar.js javascript 库进行日期格式设置,并且它还有其他通用功能,例如数字和字符串格式设置,这在我的代码库中非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多