我想输出用户系统时区,例如“美东时间”。我怎么能这样做,最好是使用Javascript,尽管我也可以在PHP方面做到这一点,如果这更容易。
答案 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)”
的内容