ven*_*lam 13 javascript time jquery plugins
我正在使用jQuery,我需要获得德国当地时间.
任何从任何国家访问我网站的人都应该知道它在德国的时间.
如果时间是在0:00到12:00之间,我需要提醒:"早上好".
如果时间是在12:00到17:00之间,我需要提醒一下:"下午好".
我怎样才能在jQuery中实现它?
CMS*_*CMS 24
您可以获取客户端的本地时区偏移量以获取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.");
}
Run Code Online (Sandbox Code Playgroud)
更新:我同意@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);
}
})
});
Run Code Online (Sandbox Code Playgroud)
我们现在利用JSONP对jsontime服务器执行跨域请求,该服务器公开了一个完整的JSON API来查询时间和时区信息.
您可以在这里使用代码,您可以在这里探索JSONP API .
Hurray !,没有服务器端代码!
您想在德国或者用户时区的时间,无论他们在哪里?如果是后者,则该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.");
}
Run Code Online (Sandbox Code Playgroud)