Angularjs 角度转换-格式日期

Angularjs 角度转换-格式日期,angularjs,localization,date-formatting,angular-translate,Angularjs,Localization,Date Formatting,Angular Translate,我正在使用Angular translate进行我的应用程序本地化。我想根据用户的区域设置动态更改日期格式 如果区域设置为法语:格式为dd/mm/yyyy 如果区域设置为英语/美国:格式为mm/dd/yyyy …依此类推,具体取决于区域设置的默认日期格式 如何(干净地)通过角度翻译实现这一点?也许我已经过时了,但我不认为角度翻译与本地化有任何关系。因此,这里是我的解决方案(但它非常干净) 如果你每页只加载一次,重新加载就足够了。安装js文件并将其放入HTML中 bower安装angular-

我正在使用Angular translate进行我的应用程序本地化。我想根据用户的区域设置动态更改日期格式

  • 如果区域设置为法语:格式为
    dd/mm/yyyy
  • 如果区域设置为英语/美国:格式为
    mm/dd/yyyy
  • …依此类推,具体取决于区域设置的默认日期格式

如何(干净地)通过角度翻译实现这一点?

也许我已经过时了,但我不认为角度翻译与本地化有任何关系。因此,这里是我的解决方案(但它非常干净)

如果你每页只加载一次,重新加载就足够了。安装js文件并将其放入HTML中
bower安装angular-i18n

<script src="/bower_components/angular-i18n/angular-locale_YOUR-LOCALE.js"></script>
你的js:

angular.module('myApp', ['tmh.dynamicLocale', ...])

angular.module('myApp').controller('myController', [..., 'tmhDynamicLocale',
    function… {
        tmhDynamicLocale.set('en');
    }
])

请注意,请务必检查repo的自述文件,以了解
localeLocationPattern(string)

是的,有一种非常简单的方法。。 不确定它是否干净,但可以被弄干净

你可以使用angular translate提供的
插值
,问题是你不能在插值字符串中使用
函数
,但是你可以做一些很酷的事情。。 在要插值的对象内传递一个函数,并在插值时调用该函数

说你需要输入日期

{{ 'date' | translate:{date:"28/01/2016"} }}
//instead of this
{{ 'date' | translate:'{date:"28/01/2016",func: func}' }}//func comes from scope.
在您的
$translateProvider.translations中

$translateProvider.translations('en',{
   'date': "{{func(date)}}"
});
这是我最后使用and结束的

。 可以使用以下命令将日期格式化为区域设置默认值:

<td>{{user.lastLogin | amDateFormat:'l LT'}}</td>
不要忘记为您希望支持的语言导入即时语言环境文件:

<script src="assets/global/plugins/moment.min.js"></script>
<script src="jslib/angular-moment.min.js"></script>
<script src="jslib/moment/de.js"></script>
<script src="jslib/moment/es.js"></script>
<script src="jslib/moment/fr.js"></script>
<script src="jslib/moment/it.js"></script>
<script src="jslib/moment/pl.js"></script>
<script src="jslib/moment/ru.js"></script>
<script src="jslib/moment/zh-cn.js"></script>
amMoment.changeLocale(language);
<script src="assets/global/plugins/moment.min.js"></script>
<script src="jslib/angular-moment.min.js"></script>
<script src="jslib/moment/de.js"></script>
<script src="jslib/moment/es.js"></script>
<script src="jslib/moment/fr.js"></script>
<script src="jslib/moment/it.js"></script>
<script src="jslib/moment/pl.js"></script>
<script src="jslib/moment/ru.js"></script>
<script src="jslib/moment/zh-cn.js"></script>
var myapp = angular.module('myapp', ['angularMoment']);