我们怎样才能在Sencha ExtJS 6.0.2版中全局设置我们想要使用的时区?

时间:2016-06-14 13:40:01

标签: javascript datetime extjs timezone timezone-offset

我们的目标是在前端部分设置时区,以显示我们所需的时区上的日期/时间,并将日期字段,时间段等生成的日期显示在同一时区,但最后发送正确的服务器时间戳。

根据以下内容将全局时区设置为javascript应用程序并非易事:How to initialize javascript date to a particular timezone

解决方案推荐像momentjs这样的库,如果我错了,请纠正我,但这超出了范围,与sencha extjs不兼容。换句话说,由sencha extjs处理的模型和组件中的时间转换太多,我们无法绕过它们。

此外,还要努力覆盖此处的javascript语言的Date对象的核心功能:https://github.com/pligor/jstimezoner
虽然上述内容适用于与sencha extjs应用程序集成的简单案例,但结果却是灾难,不推荐使用。

是否有任何我们缺少的配置使Sencha ExtJS能够在我们选择的时区上显示和处理时间和日期?

请注意,我们始终向/从服务器发送/接收时间戳,因此没有时区问题。

1 个答案:

答案 0 :(得分:0)

就像ExtJS不支持国际化一样,它不支持时区。

我们搜索了互联网,并偶然发现了MomentJS。但是当您发现时,您可以开始重写ExtJS中处理日期的几乎所有内容:您需要datetimewzonepickertype:'datetimewzone'的模型字段,datetimewzonecolumn等等等等类推。

当时,这似乎太费劲了,我们决定在每个请求中将所需的客户端时区发送到服务器会更容易,在{{1}中来回发送相应的datetime格式化,并在服务器上执行有关时区的所有其他操作。我们现在对此决定感到遗憾,因为这样,我们无法在客户端进行计算(例如离线模式下的cordova应用程序)。

如果你精通ExtJS,编写所有这些瞬间处理ExtJS扩展应该不仅是干净的,可扩展的,而且更简单的方法。