当前位置:  开发笔记 > 编程语言 > 正文

如何在jQuery中获取本地时间?

如何解决《如何在jQuery中获取本地时间?》经验,为你挑选了2个好方法。

我正在使用jQuery,我需要获得德国当地时间.

任何从任何国家访问我网站的人都应该知道它在德国的时间.

如果时间是在0:00到12:00之间,我需要提醒:"早上好".

如果时间是在12:00到17:00之间,我需要提醒一下:"下午好".

我怎样才能在jQuery中实现它?



1> CMS..:

您可以获取客户端的本地时区偏移量以获取GMT时间,然后添加德国时区的偏移小时数(中欧时间GMT + 1):

function getDate(offset){
  var now = new Date();
  var hour = 60*60*1000;
  var min = 60*1000;
  return new Date(now.getTime() + (now.getTimezoneOffset() * min) + (offset * hour));
}

//...

var dateCET = getDate(1); // Central European Time is GMT +1

if (dateCET.getHours() < 12) {
    alert ("Good morning.");
} else {
    alert ("Good afternoon.");
}

更新:我同意@Josh,上面的代码完全取决于客户端.让我们尝试做得更好:

$(document).ready(function(){
  var timezone = "Europe/Berlin";
  $.getJSON("http://json-time.appspot.com/time.json?tz="+timezone+"&callback=?",
    function(data){
      if (data.hour < 12) {
        alert ("Good morning in "+timezone);
      } else {
        alert ("Good afternoon in "+timezone);
      }
    })
});

我们现在利用JSONP对jsontime服务器执行跨域请求,该服务器公开了一个完整的JSON API来查询时间和时区信息.

您可以在这里使用代码,您可以在这里探索JSONP API .

Hurray !,没有服务器端代码!


你不认为这对于用来显示问候语的东西有点多吗?你知道,它不是导弹发射控制应用程序.
对不起,我的朋友,你的泡沫破裂,但这完全不可靠.这取决于客户端系统时钟,可以设置为完全令人愤慨的东西.使用客户端时钟过去对我来说完全搞砸了应用程序.必须将服务器端日期/时间注入隐藏字段!
@nickf:是的,可能是,我只是为了好玩而做了!并且用jQuery做了一些事情,因为OP问道:D ......
嗨CMS; 你提供很好的解决方案 昨天我已经在我的应用程序中实现了它,它工作得很完美.但是当我今天测试的时候,当我点击这个URL时,我遇到了问题,Google App Requests over .... http://json-time.appspot.com/time.json?tz现在关注的是,这不是可靠的服务.你有什么建议的?或者我可以获得该服务的源代码,然后我可以将其上传到我的服务器并使用来自我的服务器的服务,而不是依赖于另一台服务器.谢谢你的时间.请指教....

2> nickf..:

您想在德国或者用户时区的时间,无论他们在哪里?如果是后者,则该Date()函数默认在本地时区中工作.

var d = new Date();    // defaults to the current time in the current timezone
if (d.getHours() < 12) {
    alert ("Good morning.");
} else {
    alert ("Good afternoon.");
}

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有