gpt4 book ai didi

javascript - 从 Javascript 中的 .NET DateTime JSON 格式字符串获取正确的日期值

转载 作者:行者123 更新时间:2023-11-30 06:02:08 27 4
gpt4 key购买 nike

我有一个 javascript 应用程序,它以 JSON 格式从 ASP.NET WebService 接收数据。我的应用程序对日期进行了大量操作,它也从 WebService 接收到这些日期。

WebService 以 EST 时区存储所有日期并以以下格式发送它们:

{"Date":"\/Date(1319205600000+0300)\/"} 

到我的 javascript 应用程序。

在客户端,无论浏览器的时区如何,我都应该在 EST 时区显示所有日期。因此,如果我从服务器接收到以下表示:

10/21/2011 10:00

我应该向用户显示完全相同的时间。

所以为了转换日期,我做了这样的事情:

function convert_date(millisec) {
var date = new Date(millisec),
local_offset = date.getTimezoneOffset(),
server_offset = -5 * 60, //EST offset
diff = (local_offset + server_offset) * 60000;

return new Date(millisec + diff);
}

但要点是 server_offset 并不总是应该是 -5。它可以是 -4,具体取决于 DST 值。我尝试使用 server_offset = (date.isDST() ? -4 : -5) * 60 但我还没有找到任何捕获 isDST() 的解决方案> 这适用于所有本地客户端时区。它们中的大多数适用于本地浏览器的时区,该时区的 DST 值与 EST 时区相同,但在 GMT+5:30 时区的情况下会失败。

那么有什么方法可以从 javascript 确定 DST 是否适用于 EST 时区中的某个特定日期?

或者我错过了什么?

最佳答案

如果您可以修改 Web 服务,我希望它也返回一个标志,指示它是否是服务器时区 (EST) 中的夏令时。

假设你做不到,你可以根据DST in the United States的这个信息判断是否是夏令时:

DST starts on the second Sunday of March and it ends on the first Sunday of November.

需要注意的是,这在未来可能会发生变化(我什至不知道它在 2007 年发生了变化)。

关于javascript - 从 Javascript 中的 .NET DateTime JSON 格式字符串获取正确的日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7697300/

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