Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
33
rated 0 times [  39] [ 6]  / answers: 1 / hits: 46111  / 16 Years ago, thu, march 19, 2009, 12:00:00

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.



If the time is between 0:00 and 12:00 I need to make an alert reading: Good Morning.



If the time is between 12:00 and 17:00 I need to make an alert reading: Good Afternoon.



How can I implement this in jQuery?


More From » jquery

 Answers
88

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.);
}


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);
}
})
});


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!, no server-side code!


[#99825] Friday, March 13, 2009, 16 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
mikael

Total Points: 73
Total Questions: 115
Total Answers: 86

Location: Central African Republic
Member since Mon, Aug 10, 2020
4 Years ago
;