Rub*_*zzi 5 javascript timezone datetime dst
我需要编写一个Web应用程序来显示不同语言环境中的人员事件.我几乎完成了它,但是日期有2个问题:
().是否可以在javascript中使用给定的时区和日光设置构建日期对象?我也找到了一些解决方法,如jsdate和日期web服务,但他们没有克服具有正确的时区和日光设置的JavaScript对象的问题(日期操作,如添加天等).
要记住几件事.
以UTC时间存储所有事件日期时间
是的,没有解决这个问题.
找出所有的时区......
...系统中的所有用户.您可以使用以下检测脚本:http://site.pageloom.com/automatic-timezone-detection-with-javascript.它将为您提供时区密钥,例如"America/Phoenix".
在您的情况下,您需要将时区与事件一起存储,因为用户可能会切换时区 - 但事件将始终发生在特定事件中.(哎呀)
选择您的显示机制
如果你想用Javascript本地化你的事件日期,那么也有一个漂亮的库(可以使用前一个脚本提供的密钥).这里:https://github.com/mde/timezone-js.
您可以使用该库执行此操作:
var dt = new timezoneJS.Date(UTC_TIMESTAMP, 'America/New_York');
Run Code Online (Sandbox Code Playgroud)
要么
var dt = new timezoneJS.Date(2006, 9, 29, 1, 59, 'America/Los_Angeles');
Run Code Online (Sandbox Code Playgroud)
例如,UTC_TIMESTAMP可以是1193855400000.并且America/New_York是事件发生时您检测到的时区.
dt从中获得的对象将表现为普通的JavaScript Date对象.但会自动"纠正"自己指定的时区(包括DST).
如果您愿意,可以在服务页面之前在后端进行所有更正.由于我不知道你在那里使用什么编程语言,我不能给你任何直接的提示.但基本上它遵循相同的逻辑,如果您知道时区,并且UTC日期时间 - >您可以本地化日期时间.所有编程语言都有用于此的库.