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

如何使用javascript获取用户时区的字符串表示?,javascript,datetime,timezone,Javascript,Datetime,Timezone,我想输出用户的系统时区,例如“EST”。我如何做到这一点,最好是使用Javascript,尽管我也可以在PHP端这样做,如果这非常容易的话。您必须使用Javascript,因为您不知道服务器端的客户端时区。您可以使用下面的代码从localtime提取相关的时区字符串 var now = new Date(); localtime = now.toTimeString(); 它将返回类似于“12:21:44 GMT-0400(EDT)”的内容。您必须使用Javascript,因为您不知道服务器端

我想输出用户的系统时区,例如“EST”。我如何做到这一点,最好是使用Javascript,尽管我也可以在PHP端这样做,如果这非常容易的话。

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

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

它将返回类似于“12:21:44 GMT-0400(EDT)”的内容。

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

var now = new Date();
localtime = now.toTimeString();
它将返回类似于“12:21:44 GMT-0400(EDT)”的内容。

Javascript有一个函数,它将以分钟为单位显示GMT和本地时区之间的差异。要从该偏移量到实际偏移量,可以说:

var offset = Date.getTimezoneOffset / 60 * -1
需要
*-1
,因为偏移量将与预期相反(例如,EST,即GMT-5,将导致300,因为GMT提前300分钟)

然后,需要将偏移转换为偏移的描述。Javascript中没有内置的方法来实现这一点。你可以考虑创建一个查找数组,但是会有一个问题,即对于相同的偏移量有多个名称(例如,GMT- 5可以是EST(东部标准时间)或CDT(中心日光时间)。 有关详细信息,请参阅Wikipedia。

Javascript有一个函数,它将以分钟为单位显示GMT和本地时区之间的差值。要从该差值到实际偏移量,您可以说:

var offset = Date.getTimezoneOffset / 60 * -1
需要
*-1
,因为偏移量将与预期相反(例如,EST,即GMT-5,将导致300,因为GMT提前300分钟)

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


查看Wikipedia获得一个。

Hmm…很接近。我得到的是“东部夏时制”,而不是缩写。(实际上,我可以使用php,因为这是一个将在用户机器上本地运行的应用程序。)看,嗯…很接近。我得到的是“东部夏时制”,而不是缩写。(事实上,我可以使用php,因为这是针对将在用户机器上本地运行的应用程序的。)请参阅,这种方法的问题是,仅使用php本身是不够的。您需要知道是否存在“夏令时”在该位置有效。这种方法的问题是自身的偏移量不够。您需要知道在该位置是否存在“夏令时”。