如何在Javascript中将PST时区中从服务器转换为客户端时区的时间

时间:2015-12-16 06:31:48

标签: javascript datetime timezone

我有一个由Web层调用的中间件服务。中间件服务托管在中央服务器中,该服务器在PST中具有时区。

当向服务发出请求时,返回的日期时间数据是PST格式,即服务器时区。但我需要在我的网络层中有一个解决方案,将此PST时间响应转换为相应的客户端计算机时区,该时区可能因用户而异。

在javascript中我有什么方法可以处理这个时区转换吗?

1 个答案:

答案 0 :(得分:0)

如果您知道偏移量是PST(UTC -0800),那么您可以创建等效的UTC值并将它们传递给Date构造函数。这将根据系统设置创建一个合适的Date对象,其中包含所需的时间值和偏移量。

鉴于2015-12-01T05:02:00的格式,则:



function parseAsPST(s) {
  var b = s.split(/\D/);
  return new Date(Date.UTC(b[0], b[1]-1 ,b[2], +b[3] + 8, b[4], b[5]));
}

var d = parseAsPST('2015-12-01T05:02:00');
document.write('ISO 8601: ' + d.toISOString() + '<br>' +
               'Local string: ' + d.toLocaleString());
&#13;
&#13;
&#13;

但是,如果响应是PST,则当服务器所在的位置更改为该时区时,您可能会获得PDT。由于您获得的字符串不包含时区,您如何判断该字符串是PST还是PDT?