Javascript 强制angular.js应用程序的时区

Javascript 强制angular.js应用程序的时区,javascript,angularjs,datetime,timezone,Javascript,Angularjs,Datetime,Timezone,我想为angular.js应用程序使用一个时区。我知道angular.js目前使用浏览器时区设置进行日期格式化,但我想覆盖此设置,以便我可以为用户强制执行特定时区,从而使其不依赖于浏览器设置 它是一个有问题的业务应用程序,因此不需要用户特定的时区。每件事都发生在公司指定的时区,这就是为什么我想对每个用户强制执行它。数据以UTC格式保存,但需要在公司时区中为每个用户显示,而不依赖于用户位置/区域设置/浏览器设置 我有什么方法可以做到这一点,任何人都知道吗?如果有,请告诉我正确的方法,我将不胜感激:

我想为angular.js应用程序使用一个时区。我知道angular.js目前使用浏览器时区设置进行日期格式化,但我想覆盖此设置,以便我可以为用户强制执行特定时区,从而使其不依赖于浏览器设置

它是一个有问题的业务应用程序,因此不需要用户特定的时区。每件事都发生在公司指定的时区,这就是为什么我想对每个用户强制执行它。数据以UTC格式保存,但需要在公司时区中为每个用户显示,而不依赖于用户位置/区域设置/浏览器设置


我有什么方法可以做到这一点,任何人都知道吗?如果有,请告诉我正确的方法,我将不胜感激:)到目前为止,我对它没有任何运气。

您可以使用诸如、或之类的库。我已经成功地使用了timezone,而且我听说moment.js工作得很好。你可能会想建立一个注射工厂

angular.module('date', [])
.config(function () {
    timezoneJS.timezone.zoneFileBasePath = '/tz';
    timezoneJS.timezone.init();
})
.service('dateConverter', function () {
    return {
        toDisplayDate: function (utcDateIn) {
            return new timezoneJS.Date(utcDateIn, 'America/Los_Angeles')
        }
    }
});

这是我想不起来的,但这是一个你可能必须做的例子——将日期从本机JS转换为库日期

很抱歉,但是无法更改JavaScript
Date
对象的时区行为。它将始终使用运行它的计算机的时区

你能做的最好的事情就是和你的同事一起解决它。显示如何将其中一个集成到角度

此外,当你说“不需要用户特定的时区”时,我会非常仔细地考虑。有时是这样,但很少。通常,公司位于多个时区,或者有员工出差,或者与不同时区的客户或合作伙伴互动

此外,如果你说的是真的——用户总是在公司的单一时区,那么这不是他们计算机的本地时区吗?如果是这样,那就没什么可做的了


如果您有其他时区的用户,但您希望他们使用公司的主时区,则需要这些库中的一个。但是仔细考虑一下它的影响。根据用户离公司有多远,即使他们的当前日期也可能与公司的日期不同。

谢谢您的评论!当我想将日期格式化为指定的时区时,不是需要单独调用“toDisplayDate(utcDateIn)”方法吗?我首先要寻找的是一个解决方案,在这个解决方案中,我可以在整个时区应用程序范围内设置日期,并在每次将日期显示在任何地方时强制将日期格式化为给定的时区。这不是将日期格式化为timezeone。它是关于将日期对象转换为另一种类型的日期。例如,当您从服务器获取一些数据时,您将通过该方法运行日期,而不是调用
newdate(…)
。然后,您可以将另一个日期对象用于诸如date_格式过滤器之类的内容。不管怎样,你永远都无法在应用程序范围内做一些神奇的事情。。那是一个白日梦:)是的,你说得对。谢谢你的意见。我将认可这一点,因为它回答了“javascript日期对象行为是否可以更改”的问题。正如Stephen所指出的那样,我最终在我的应用程序中实现了moment.js,这是一个非常好的答案!谢谢大家!你可能也会对它感兴趣。