如何全局设置角矩时区

How to set angular moment timezone globally?

本文关键字:时区 全局设置      更新时间:2023-09-26

我在我的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');
    }
]);