Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用momentjs在angularjs中设置应用程序范围的时区_Javascript_Angularjs_Timezone_Momentjs - Fatal编程技术网

Javascript 如何使用momentjs在angularjs中设置应用程序范围的时区

Javascript 如何使用momentjs在angularjs中设置应用程序范围的时区,javascript,angularjs,timezone,momentjs,Javascript,Angularjs,Timezone,Momentjs,我有一个服务器在一个时区中存储时间戳,而用户则生活在另一个时区中。我的印象是充当了一种装饰者,如果我定义了一个时区 moment.tz.setDefault("Europe/Copenhagen"); 随后,矩函数的使用将使用定义的时区 var date = moment(timestamp_from_server).calendar() 在我的例子中,在所有时间戳中添加一个小时。但这显然不起作用 有没有可能设置一个“全局”或应用程序范围的时区,这样我就不必转换代码中的每个时间戳,只需依赖

我有一个服务器在一个时区中存储时间戳,而用户则生活在另一个时区中。我的印象是充当了一种装饰者,如果我定义了一个时区

moment.tz.setDefault("Europe/Copenhagen"); 
随后,矩函数的使用将使用定义的时区

var date = moment(timestamp_from_server).calendar()
在我的例子中,在所有时间戳中添加一个小时。但这显然不起作用

有没有可能设置一个“全局”或应用程序范围的时区,这样我就不必转换代码中的每个时间戳,只需依赖momentjs方法?任何建议,以及替代方案都将受到高度赞赏

注意:我使用AngularJS,在中设置时区

app.run(function(...) {
  ...
  moment.tz.setDefault("Europe/Copenhagen")
})

但我不认为这有任何重要性

您可以使用

如果您不想使用此模块

  • 您可以为momentjs创建工厂或服务,并使用依赖项注入在应用程序中的任何地方使用
  • 创建一个将设置默认时区的装饰器,这将有助于在整个应用程序中实现一致的时区
  • 根据评论更新:

    如果你从头开始一个新项目,它可能更容易使用 或者重新连接
    装饰程序
    应用程序。在服务中运行
    设置
    本身非常简单。但在现有项目中应用时区时,请确保时区的更改不会影响使用momentjs的现有日期函数

    使用工厂设置默认时区的简单实现

    因为工厂是单例的,所以只创建一个


    嘿,塞缪尔,这是一个极简主义的回答:)真的很感激,但具体怎么说呢?我在angularjs中使用momentjs没有问题(这就是为什么我的意思是角度对这个问题根本不重要,你在编辑中更强调了角度),但是除了提供一些有用的过滤器之外,我看不到使用角度矩的任何理由。为什么会有什么不同?@davidkonrad除了有用的过滤器和指令之外,这个模块还有助于在应用程序范围内建立一致的时区。这样您就可以轻松地转换服务器时间戳。@davidkonrad我已经更新了关于您的评论的答案。如果您只需要在工厂中应用时区,那么您可以这样做,因为服务是单例的,您可以在该服务本身设置时区。如果你选择了整个应用程序的设置,你需要考虑在代码< >代码> App.Run.()中设置的副作用:“代码> > Apple。{date | amLocal | amCalendar}不起作用。而且它完全接管了力矩,您需要通过角力矩本身进行本地化/tz等,所以放弃了这个想法,我只是将所有
    力矩()
    引用更改为
    力矩().local()
    。无论如何都接受这个答案,如果你从头开始一个新项目,使用
    角力矩可能更容易或更直观。
    。。,