如何在jQuery中获取本地时间? [英] How can I obtain the local time in jQuery?
问题描述
我正在使用jQuery,我需要获取德国当地时间。
I am using jQuery and I need to get the local time for Germany.
任何来自任何国家/地区的人都应该能够知道它的时间在德国。
Anyone coming to my website from any country should be able to know what time it is in Germany.
如果时间在0:00到12:00之间,我需要提醒一下:早上好。
If the time is between 0:00 and 12:00 I need to make an alert reading: "Good Morning".
如果时间是在12:00到17:00之间,我需要提醒:下午好。
If the time is between 12:00 and 17:00 I need to make an alert reading: "Good Afternoon".
怎么能我在jQuery中实现了这个?
How can I implement this in jQuery?
推荐答案
您可以获取客户端的本地时区偏移量来获取GMT时间,然后添加德国时区的偏移小时数(中欧时间GMT + 1):
You can get the local timezone offset of the client to get the GMT time and then add the offset hours of the Germany timezone (Central European Time 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,上面的代码完全取决于客户端。让我们尝试做得更好:
Update: I agree with @Josh, the above code is completely client dependent. Let's try to do it better:
$(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来查询时间和时区信息。
We are now taking advantage of JSONP to do Cross-Domain requests to the jsontime server, this server exposes a complete JSON API to query time and timezone information.
You can play with the code here and you can explore the JSONP API here.
Hurray !,没有服务器端代码!
Hurray!, no server-side code!
这篇关于如何在jQuery中获取本地时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!