解析json日期时区不匹配的Javascript会导致显示错误的日期

时间:2012-07-07 15:18:09

标签: javascript json date timezone-offset

根据加载页面的机器的时区,显示javascript解析日期会有所不同。

SERVER TIME: EST
MACHINE #1 TIME: EST - shows proper date
MACHINE #2 TIME: EST - shows proper date
MACHINE #3 TIME: PST - shows one day earlier 
MACHINE #4 TIME: PST - shows one day earlier 

我想知道如何解析JSON日期,以便时区不会成为一个因素。这是我目前的代码:

var jsonDate = "/Date(1341633600000)/";
var formattedDate = new Date(parseInt(jsonDate.substr(6)));
return formattedDate.getMonth() + 1 + "/" + formattedDate.getDate() + "/" + formattedDate.getFullYear();

忽略时区偏移的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

问题与解析日期无关。您正在向客户端发送UTC时间戳,客户端(正确地)以本地术语反映日期。

您始终可以使用getUTCxxx方法(getUTCDate()getUTCMonth()getUTCFullYear())使页面显示日期为UTC。或者,您可以将时间戳转换为服务器上其本地时区的日期字符串,以便客户端时区根本不会计入其中。