微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不同日期和时区的Javascript日期对象

如何解决不同日期和时区的Javascript日期对象

| 我需要编写一个Web应用程序,以显示不同区域的人员事件。我差不多完成了,但是日期有2个问题: 使用日期javascript对象,日期取决于用户计算机设置,并且不可靠 如果某个时区不同的地方有一个事件尊重用户当前的位置,我必须在
()
内打印它。在JavaScript中是否可以使用给定的时区和日光设置来构建日期对象? 我还找到了一些解决方法,例如jsdate和date Webservices,但它们不能解决具有正确的时区和夏令时设置的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\');
要么
var dt = new timezoneJS.Date(2006,9,29,1,59,\'America/Los_Angeles\');
其中UTC_TIMESTAMP例如可以为
1193855400000
。 “ 4”是您在事件发生时检测到的时区。 从中获得的
dt
对象将表现为普通的JavaScript
Date
对象。但是会自动将其自身“更正”到您指定的时区(包括DST)。 如果需要,您可以在提供页面之前在后端中进行所有更正。由于我不知道您在那使用的是哪种编程语言,因此我无法给您任何直接的提示。但基本上,它遵循相同的逻辑,如果您知道时区和UTC日期时间->,则可以本地化日期时间。所有编程语言都具有用于此的库。     ,        您缺少Date对象的意义。它代表一个特定的时间点。就我而言,全世界是1308150623182。时区仅在您想向用户显示时间时才起作用。诸如“添加一天”之类的操作根本不涉及时区。     ,        一种可能是对所有内容使用UTC日期和时间。这样,就没有任何转换。 另一个是让您的服务器提供时间和日期。这样,您不必依赖用户来正确设置它,也不必担心用户的时区在哪里。     ,        使用
getUTCDate()
getUTCHours()
,...代替
getDate()
getHours()
,...
getTimetoneOffset()
也可能有用。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。