gpt4 book ai didi

不同语言环境和时区的 Javascript 日期对象

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:32 26 4
gpt4 key购买 nike

我需要编写一个 Web 应用程序来显示不同地区的人们的事件。我快完成了,但是日期有 2 个问题:

  • 使用 date javascript 对象,日期取决于用户计算机设置并且不可靠
  • 如果在不同时区的地方有一个事件尊重用户当前位置,我必须在 () 中打印它。是否可以在 javascript 中构建具有给定时区和夏令时设置的日期对象?

我也找到了一些变通方法,例如 jsdate 和日期网络服务,但它们并没有解决具有正确时区和夏令时设置的 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 可以是 1193855400000America/New_York 是事件发生时您检测到的时区。

您从中获得的 dt 对象将表现为普通的 JavaScript Date 对象。但会自动“更正”自己到您指定的时区(包括夏令时)。

如果需要,您可以在后台进行所有更正 - 在提供页面之前。因为我不知道你在那里使用的是什么编程语言,所以我不能立即给你任何提示。但基本上它遵循相同的逻辑,如果您知道时区和 UTC 日期时间 -> 您可以本地化日期时间。所有编程语言都有相应的库。

关于不同语言环境和时区的 Javascript 日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6356839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com