2009-06-12 74 views

回答

2

您将不得不使用Javascript - 因为您不知道服务器端的客户端时区。您可以使用下面的代码并从本地时间提取相关的时区字符串。

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

这将返回类似“12时21分44秒GMT-0400(EDT)”

+0

嗯...这就是结束。我得到“东部夏令时间”,而不是缩写。 (其实,我*可*使用PHP,因为这是一个应用程序这将在用户的机器上本地运行。) – sprugman 2009-06-12 16:50:50

+0

请参阅http://stackoverflow.com/questions/709350/time-zones和http://stackoverflow.com/questions/633300/how-do-you-get-php- to-return-the-timezone-abbreviation-aest – 2009-06-12 17:43:45

4

JavaScript有一个Date.getTimezoneOffset功能,这将给你在GMT和本地时区之间分钟的差别。为了从获得实际的偏移量,你可以说:

var offset = Date.getTimezoneOffset/60 * -1 

* -1是必要的,因为偏移量将是相反你所期望的(例如,EST,这是北京时间,将导致300,因为格林威治时间提前300分钟)。

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

list of timezones参见维基百科。

相关问题