Javascript 如何获得用户';通过他们的电话、outlook电子邮件或城市选择当地时间(时区)?

Javascript 如何获得用户';通过他们的电话、outlook电子邮件或城市选择当地时间(时区)?,javascript,ruby-on-rails,ruby,api,exchangewebservices,Javascript,Ruby On Rails,Ruby,Api,Exchangewebservices,我正在开发rails项目,其中包含对用户的搜索。 每个用户都有: outlook电子邮件(我可以使用Exchange API) 乡村与城市 我正在寻找最快速、最简单的方法来获取用户的本地时间或时区 我的想法是: 通过谷歌api获取城市坐标,然后通过voordinates获取时区 使用其他特定的RESTAPI获取时区 但这种想法的实现并不是导致长时间请求/响应延迟的好原因。。。所以它不适合我 问题: 是否存在通过电子邮件获取用户时区的Exchange API 你能告诉我更好的方法(JS、Ro

我正在开发rails项目,其中包含对用户的搜索。 每个用户都有:

  • outlook电子邮件(我可以使用Exchange API)
  • 乡村与城市
我正在寻找最快速、最简单的方法来获取用户的本地时间或时区

我的想法是:

  • 通过谷歌api获取城市坐标,然后通过voordinates获取时区

  • 使用其他特定的RESTAPI获取时区

  • 但这种想法的实现并不是导致长时间请求/响应延迟的好原因。。。所以它不适合我

    问题:

    • 是否存在通过电子邮件获取用户时区的Exchange API

    • 你能告诉我更好的方法(JS、RoR或EWS API方法)来获取用户的信息吗 时区

    谢谢

    我的算法:

  • 创建其他模型时区目录,例如
  • 首先检查TimezoneDictionary模型中的时区
  • 如果在TimezoneDictionary中找不到时区值-向Google API请求时区,并将其保存到TimezoneDictionary中:

    a) 请求通过

    b) 请求时区通过

  • 当我们有时区值(例如“欧洲/基辅”)时,我们可以通过ActiveSupport获得本地时间:

    local_time = Time.now.in_time_zone "Europe/Kyiv"
    

    顺便说一句,我为这个问题创建了一个gem(例如通过城市名称获取timzone/时间),所以如果你有这个愿望,就使用它:)。我将非常感谢您的请求。

    您可以尝试通过我们的新API解决此问题

    curl -s 'https://api.teleport.org/api/cities/?search=Tallinn,%20Estonia&embed=city:search-results/city:item/city:timezone/tz:offsets-now' | jq '._embedded."city:search-results"[0]._embedded."city:item"._embedded."city:timezone"'
    
    这将对匹配“爱沙尼亚塔林”的城市进行搜索,并获取结果的时区信息

    我曾经解析过它,结果如下所示:

    {
      "_embedded": {
        "tz:offsets-now": {
          "_links": {
            "self": {
              "href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/?date=2015-09-07T11%3A41%3A00Z"
            }
          },
          "base_offset_min": 120,
          "dst_offset_min": 60,
          "end_time": "2015-10-25T01:00:00Z",
          "short_name": "EEST",
          "total_offset_min": 180,
          "transition_time": "2015-03-29T01:00:00Z"
        }
      },
      "_links": {
        "self": {
          "href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/"
        },
        "tz:offsets": {
          "href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/{?date}",
          "templated": true
        },
        "tz:offsets-now": {
          "href": "https://api.teleport.org/api/timezones/iana:Europe%2FTallinn/offsets/?date=2015-09-07T11%3A41%3A00Z"
        }
      },
      "iana_name": "Europe/Tallinn"
    }
    

    @spickermann Exchange Web服务API@spickermann例如,要检查用户是否外出,我可以使用GetOofSettings API方法。但对于用户的时区是否存在类似的方法?@spickermann请将我的问题重新投票-它已经有“ews”和“exchangewebservices”标记。您使用了什么gem?@spickermann我使用“exchanger”gem,但正如我所看到的,这个gem只支持GetUsersAvailability API。。。所以,我正在寻找一个最好的方法——如何获取用户的本地时间(我有城市和交换电子邮件)。