在文本框中给出州和国家时获取时区
有没有办法用这两个值获取那个地方的时区?
输入会像
var state = 'New York' ;
var country = 'United States';
结果应该是
美国/纽约
或者
获取当前浏览器的本地时区?
我需要在 ics 文件中使用这个时区。
在文本框中给出州和国家时获取时区
有没有办法用这两个值获取那个地方的时区?
输入会像
var state = 'New York' ;
var country = 'United States';
结果应该是
美国/纽约
或者
获取当前浏览器的本地时区?
我需要在 ics 文件中使用这个时区。
这是不可能的,原因很简单,很多州跨越多个时区。请参阅维基百科的列表。在美国以外,它可能会变得更加复杂。我相信有些城市跨越多个时区。
您可以将每个州的猜测拼凑在一起(例如,通过使用该列表),但如果这是为了弄清楚用户的时区,那么您可能会有更好的运气,只需将客户端时钟与服务器的 UTC 时间进行比较并根据国家/地区进行估计.
编辑:请注意,也无法向浏览器询问当前时区,并且您无法根据当前时间可靠地猜测,因为有许多时区现在时间相同但 DST 不同。您最好的选择是找到所有可能的当前时区,根据用户的位置进行估计(您也必须猜测!),然后作为最后的手段询问。
不,不存在预定义的方法。
为此,您需要一些外部 Web 服务。如果您有兴趣,可以使用wikipedia中提供的信息创建自己的 API
更新:根据您的评论“获取当前浏览器的本地时区
var date = new Date();
返回12:38:05 GMT+0530(印度标准时间)
要选择括号内的时间,请使用
date.toTimeString().match(/\(([^)]+)\)/)[1];
返回印度标准时间
检查这个JSFiddle
但这不是您所期望的,但是您应该尝试使用 JavaScript 自动检测时区,对于更新版本,请尝试使用 jsTimezoneDetect
GeoNames 提供了一个可以使用的数据转储:
http://download.geonames.org/export/dump/
这是根据 skylarsutton 在上一篇文章中对类似问题的回应(但不特定于 js 或查询)...