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

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

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

如果时间是在0:00到12:00之间,我需要提醒一下:“早上好”。

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

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

您可以获取客户端的本地时区偏移量以获取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。

华友世纪!,没有服务器端代码!

你想在德国或者用户时区的时间,无论他们在哪里? 如果是后者,则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."); } 

您需要将Web服务器上的日期/时间注入页面上的隐藏字段,然后您可以使用jQuery访问它并加载自然的Javascript Date对象。 您希望依赖客户端日期/时间,因为它不受您的控制,可以设置为令人发指的东西。 相信我。