代码之家  ›  专栏  ›  技术社区  ›  garek007

用javascript按ip地址获取用户本地时间?

  •  0
  • garek007  · 技术社区  · 6 年前

    我在努力争取时间让有人访问我的网站。看起来很简单,但棘手的是人们可能从其他时区旅行,而不改变他们的系统时钟。使用以下命令:

      var d = new Date();
      var currentTime = d.getHours();
      console.log( currentTime );
    
      if(currentTime < 12){
        var tod = "morning";
      }else if(currentTime >= 12 && currentTime <= 17){
        var tod = "afternoon";
      }else{
        var tod = "evening";
      }
    document.write("hour of day is: "+currentTime);
    console.log("Time of day is: "+tod );
    

    我能检测到本地系统时间。例如,如果我的时钟显示上午7:06,那么变量 当前时间 将是7。这是基于系统时钟的。所以如果我把时区改成东部, 当前时间 将是10而不是7。问题是,我想检测用户在一天中的某一时刻实际坐着的时间。所以如果我在东海岸,我的系统时钟是早上7点,我还是想给用户显示10点。我想通过IP地址检测一天中用户所在的时间。我找到了一种收集IP地址的方法,但不知道如何使用它来获取本地时间。

    如果还有别的办法,我也愿意接受。谢谢。

    有些人可能建议从服务器获取,但我使用的是营销云,似乎没有办法做到这一点。我已经使用了可用的ampscript函数,但它们并没有像我预期的那样工作。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Mike    6 年前

    使用任何会响应用户时区的api。例如这个:

    http://ip-api.com/json
    

    并以此为基础计算用户的时间。