使用JavaScript通过IP地址获取用户本地时间?

时间:2018-10-31 14:13:16

标签: javascript salesforce-marketing-cloud

我正在尝试吸引访问者访问我的网站。似乎很容易,但是棘手的部分是人们可能正在从其他时区旅行而未更改他们的系统时钟。使用以下内容:

  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 AM,则变量 currentTime 将为7。这基于系统时钟。因此,如果我将时区更改为“东部”,则 currentTime 将是10而不是7。问题是我想检测用户当时实际坐在哪一天的时间。因此,如果我在东海岸,并且系统时钟显示为7AM,我仍然想向用户显示10。我想通过IP地址检测用户实际所在的时间。我已经找到一种收集IP地址的方法,但是不确定如何使用它来获取本地时间。

如果还有另一种方式,我也对此持开放态度。谢谢。

有些人可能建议从服务器上获取它,但是我正在使用市场营销云,但似乎没有一种实现方法。我已经使用了可用的AmpScript函数,但它们却无法正常运行。

1 个答案:

答案 0 :(得分:0)

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

http://ip-api.com/json

并基于此计算用户的时间。