如何使用javascript获取用户时区的字符串表示?

时间:2009-06-12 16:06:40

标签: javascript datetime timezone

我想输出用户系统时区,例如“美东时间”。我怎么能这样做,最好是使用Javascript,尽管我也可以在PHP方面做到这一点,如果这更容易。

2 个答案:

答案 0 :(得分:4)

Javascript具有Date.getTimezoneOffset功能,可以让您在GMT和当地时区之间获得分钟差异。要从中获得实际偏移量,您可以说:

var offset = Date.getTimezoneOffset / 60 * -1

需要* -1因为偏移量与预期相反(例如,EST,GMT -5,将导致300,因为GMT提前300分钟。)

从那里,您需要将偏移量转换为偏移量的描述。 Javascript中没有内置方法可以这样做。您可以考虑创建一个查找数组,但是会出现同一偏移有多个名称的问题(例如,GMT - 5可能是EST(东部标准时间)或CDT(中部夏令时)。

请参阅Wikipedia了解list of timezones

答案 1 :(得分:2)

您必须使用Javascript - 因为您不知道服务器端的客户端时区。您可以使用下面的代码并从localtime中提取相关的时区字符串。

var now = new Date();
localtime = now.toTimeString();

将返回类似“格林威治标准时间12:21:44(EDT)”

的内容