进入州和国家时获得时区(在ics文件中使用的时区)

时间:2013-11-05 06:43:29

标签: javascript jquery timezone

在文本框中提供州和国家/地区时获取时区

有没有办法用这两个值来获得那个地方的时区?

输入就像

var state = 'New York' ;
var country = 'United States';

结果应该是

  

美国/纽约

OR

获取当前浏览器的本地时区?

我需要在ics文件中使用此时区。

3 个答案:

答案 0 :(得分:3)

这是不可能的,原因很简单,很多州跨越多个时区。见Wikipedia's list。在美国之外,它可能变得更加复杂;我相信有一些城市跨越多个时区。

你可以拼凑每个状态的猜测(例如通过使用该列表),但如果这是为了找出用户的时区,你可能会比较客户端时钟更好运使用服务器的UTC时间并根据国家/地区进行估算。

编辑:请注意,也无法向浏览器询问当前时区,并且您无法根据当前时间进行可靠猜测,因为有很多时区在同一时间现在< / em>但是DST不同。您最好的选择是找到所有可能的当前时区,根据用户的位置进行估算(您还需要猜测!),只需要作为最后的手段。

答案 1 :(得分:2)

不,没有预先定义的方法。

为此,您需要一些外部Web服务。如果您有兴趣,可以使用wikipedia

中提供的信息创建自己的API

更新:根据您的评论&#34; 获取当前浏览器的本地时区

var date = new Date(); 

返回格林尼治标准时间12:38:05 + 0530(印度标准时间)

选择括号内的时间

date.toTimeString().match(/\(([^)]+)\)/)[1];

返回印度标准时间

选中此JSFiddle

但这不是您所期望的,但是您应该尝试Auto detect a time zone with JavaScript,对于更新版本,请尝试jsTimezoneDetect

答案 2 :(得分:1)

GeoNames提供了一个可以使用的数据转储:

http://download.geonames.org/export/dump/

这是每个skylarsutton在以下上一篇文章中的回答,其中有一个类似的问题(但不是特定于js或查询)......

I need a mapping list of cities to timezones- best way to get it?