我在我的angular应用程序中使用了angular moment js。我想根据当前用户的时区显示日期和时间。我无法在我的应用程序上应用全局时区。
https://github.com/urish/angular-moment我试过了。
angular.module('myapp').constant('angularMomentConfig', {
timezone: 'Europe/London' // e.g. 'Europe/London'
});
In one of my view -
{{home.eventStart| amDateFormat:'dddd, MMMM Do YYYY, h:mm:ss a'}}
在我的一个控制器-
$scope.profile.eventStart = moment(data.start).format('YYYY-MM-DD hh:mm a');
在这两种情况下我都没有得到任何更改,即使在我设置了时区之后。我错过什么了吗?
设置常量后不能更改。因为注入不依赖于模块。常量或模块值,这应该可以达到目的:
angular.module('myapp').value('angularMomentConfig', {
timezone: 'Europe/London' // e.g. 'Europe/London'
});
timezone
为可选参数。如果省略它,它将自动使用本地机器的时区。这是moment.js和JavaScript Date
对象的默认行为。
我也有同样的问题。
这就是解决这个问题的方法。
你需要在你的项目中包含moment-timezone.js v0.3.0或更高版本,否则自定义时区功能将不可用。
这里的文档
从1.0.0-beta版本开始。1、可以使用amMoment服务设置时区。只需注入amMoment服务并调用changeTimeZone:
amMoment.changeTimezone('Europe/London');
app.run(['amMoment',
function (amMoment) {
amMoment.changeTimezone('Europe/Paris');
}
]);