AngularJS日期过滤器传递i18n语言环境以进行单次调用

时间:2016-01-15 10:26:57

标签: angularjs filter internationalization

现在我使用" date"过滤

{{ controller.day | date : 'EEEE - MMM d yyyy' }}

我可以添加类似' locale'

的内容
{{ controller.day | date : 'EEEE - MMM d yyyy' : 'it-IT' }}

对于语言环境,日期为意大利语,但其余的应用程序仍为英语?

2 个答案:

答案 0 :(得分:0)

是的,你可以。

...convert the date in javascript
var convertedDateString = dateToConvert.toLocaleString();
var convertedDate = new Date(convertedDateString);

... later, in angular
{{convertedDate | date:'medium'}}

答案 1 :(得分:0)

我不太清楚你要去哪里(重点是什么),但有两种方法可以实现你的目标。

  1. 您可以使用Angular Dynamic Locale动态加载Angular L10n文件。甚至有一个有效的示例如何在其GitHub页面上设置目标语言环境:tmhDynamicLocale.set('it');

  2. 您可以使用任意格式创建自己的过滤器。例如,您可以使用moment.js格式化日期。

  3. 就个人而言,我会建议第一条道路。这也将根据区域设置格式化数字。

    我绝对不推荐使用vanilla JavaScript' Date.toLocaleString();。应始终将此函数作为参数给定:Date.toLocaleString(currentLocale);。后者的唯一问题是对ECMA-402 standard的支持,{{3}}仅由现代Web浏览器实现。如果您需要支持古老的网络浏览器(例如IE到10之前的版本),您不能指望它能够正常工作。