gpt4 book ai didi

JavaScript Date 对象总是在 America/New_York 时区打印?

转载 作者:行者123 更新时间:2023-11-29 22:29:54 24 4
gpt4 key购买 nike

我有一个从我的服务器发送的以毫秒为单位的时间戳 ( Unix time / time from Epoch ),它使用 Joda-time 并且始终使用恒定时区“America/New_York”。在我的客户端上,我还想保证根据 America/New_York 时区显示时间。我依赖于 MDN Date documentation ,并决定使用新的 Date(milliseconds) 构造函数来实例化我的 Date 对象是最简单的方法。

现在是困难的部分: 我希望能够为在 America/New_York 时区之外使用我的网站的客户打印时间。我知道我可以getTimezoneOffset来自 Date 对象,所以现在我正在考虑根据偏移量对该对象执行算术运算,并依靠服务器来告诉我是否处于夏令时。使用this method from the Joda Time library .

我想要一个适用于 IE8 和现代浏览器的解决方案。有什么想法吗?是否有任何小型实用程序已经以标准方式实现了这一点?

// dateTimeAsString is sent from the server (via JSON) as a String
// dateTimeAsString example: "1311387300000"
var dateTimeAsInt = parseInt(dateTimeAsString,10);
var dateTimeInNY = new Date(dateTimeAsInt);

// My current offset is 240
var nyOffset = dateTimeInNY.getTimezoneOffset();

// Somewhere out west
var dateTimeInTexas = new Date(dateTimeAsInt);


var isDST = false; // sent from server


// What I want to do, this is not legal JavaScript
dateTimeInTexas.printWithOffset(isDST,nyOffset);

最佳答案

浏览器没有时区信息。它们只能以 UTC 和当前操作系统时区显示。甚至不能保证客户对“美国/纽约”时区有任何了解(例如,一个糟糕的、弱的移动设备)。

如果您想在特定时区显示日期,最简单的方法是将其转换为格式化字符串并将其作为字符串传输,而不是毫秒。

如果你需要在客户端做一些日历计算,你就不幸了......你必须手动完成。

顺便说一句,您不能按原样使用 timezoneOffset,因为对于特定日期它可能不同,DST 也很重要。

所以,首先。您想在客户端对日期做什么?

关于JavaScript Date 对象总是在 America/New_York 时区打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7518165/

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