Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jQuery中获取本地时间?_Javascript_Jquery_Plugins_Time - Fatal编程技术网

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

Javascript 如何在jQuery中获取本地时间?,javascript,jquery,plugins,time,Javascript,Jquery,Plugins,Time,我正在使用jQuery,我需要获取德国的当地时间 任何从任何国家访问我的网站的人都应该能够知道现在在德国的时间 如果时间在0:00到12:00之间,我需要发出警告:“早上好” 如果时间在12:00到17:00之间,我需要发出警告:“下午好” 我如何在jQuery中实现这一点?您想获取德国的时间,还是用户所在时区的时间,无论它们在哪里?如果是后者,则Date()函数默认在本地时区工作 var d = new Date(); // defaults to the current time in

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

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

如果时间在0:00到12:00之间,我需要发出警告:“早上好”

如果时间在12:00到17:00之间,我需要发出警告:“下午好”


我如何在jQuery中实现这一点?

您想获取德国的时间,还是用户所在时区的时间,无论它们在哪里?如果是后者,则
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.");
}
var d=new Date();//默认为当前时区中的当前时间
如果(d.getHours()<12){
警觉(“早上好”);
}否则{
警惕(“下午好”);
}

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

函数getDate(偏移量){ var now=新日期(); var小时=60*60*1000; 最小值=60*1000; 返回新日期(now.getTime()+(now.getTimezoneOffset()*min)+(offset*hour)); } //... var dateCET=getDate(1);//中欧时间是格林尼治标准时间+1 if(dateCET.getHours()<12){ 警觉(“早上好”); }否则{ 警惕(“下午好”); } 更新:我同意@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);
      }
    })
});
$(文档).ready(函数(){
var timezone=“欧洲/柏林”;
$.getJSON(“http://json-time.appspot.com/time.json?tz=“+时区+”&回调=?”,
功能(数据){
如果(数据时间<12小时){
警报(“早上好”+时区);
}否则{
警报(“下午好”+时区);
}
})
});
我们现在正在利用向服务器进行跨域请求,该服务器公开一个完整的JSON API来查询时间和时区信息

您可以使用代码,也可以探索JSONPAPI


万岁!,没有服务器端代码

您需要将web服务器中的日期/时间注入页面上的隐藏字段,然后可以使用jQuery访问该字段并加载自然对象。您确实不想依赖客户端日期/时间,因为它超出了您的控制范围,可能会被设置为异常情况。相信我。

很抱歉,我的朋友,你的幻想破灭了,但这是完全不可靠的。这取决于客户机系统时钟,它可能被设置为完全不正常的事情。在过去,使用客户端时钟对我来说已经完全搞乱了应用程序。必须将服务器端日期/时间注入隐藏字段!你不认为这对仅仅用来显示问候语的东西来说有点过分吗?你知道,这不是一个导弹发射控制应用程序。@nickf:是的,可能是,我只是为了好玩才做的!,并使用jQuery做一些事情,正如OP所问的:D…Hi CMS;你提供了很好的解决方案。昨天我在我的应用程序中实现了这一点,它工作得非常完美。但是当我今天测试的时候,当我点击这个URL时,我遇到了问题,谷歌应用程序请求超过。。。。现在我担心的是,这不是可靠的服务。你有什么建议?或者我可以获得该服务的源代码,然后我可以将其上传到我的服务器,并使用来自我的服务器的服务,而不是依赖于另一台服务器。谢谢你抽出时间。请建议……不要依赖客户端日期/时间。它不能保证准确!这实际上与jQuery无关。那么客户端总是正确的这一事实又如何呢?就用户所见,他们的时间是正确的(即使可能是错误的)。从另一台服务器获取正确的时间会让用户从他们的角度看到错误的时间。Dupe:好的,鉴于OP中所述的情况,它被用于简单的“早上好/晚上好”问候语,nickf:100%保证所有用户都会有相似的体验,这既不荒谬也不过分。在我的世界里,这绝对是强制性的。@nickf的真实?隐藏的领域不是火箭科学。
$(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);
      }
    })
});