Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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
Php 在jQuery中获取默认服务器时间?_Php_Javascript_Jquery - Fatal编程技术网

Php 在jQuery中获取默认服务器时间?

Php 在jQuery中获取默认服务器时间?,php,javascript,jquery,Php,Javascript,Jquery,如何使用jQuery获取web服务器时间?要获取服务器代码,您需要在服务器端使用某种方法,在渲染时为页面添加时间,或者如果需要实时(ops),则需要使用jQuery对服务器进行ajax调用。 这意味着您需要在服务器端有一些东西来响应ajax请求。服务器端使用哪种语言?以下是一种在服务器端无需任何特定代码,甚至无需有效路径的方法 try { var date = new Date($.ajax({'type': 'HEAD', 'url': '/'}).getResponseHeader('D

如何使用jQuery获取web服务器时间?

要获取服务器代码,您需要在服务器端使用某种方法,在渲染时为页面添加时间,或者如果需要实时(ops),则需要使用jQuery对服务器进行ajax调用。
这意味着您需要在服务器端有一些东西来响应ajax请求。服务器端使用哪种语言?

以下是一种在服务器端无需任何特定代码,甚至无需有效路径的方法

try {
  var date = new Date($.ajax({'type': 'HEAD', 'url': '/'}).getResponseHeader('Date'));
}
catch(err) { 
  var date = null;
}
这是假定服务器将始终返回“日期”头。需要对服务器的细节进行一些实验


编辑添加:注意,这是一个更可爱的黑客方式来做这件事。“正确”的方法是设置服务器端脚本以快速返回服务器时间,或者可能将其内联到脚本将运行的页面,或者如果“足够好”的话,只使用客户端时间

如果您的服务器上运行了类似php的东西,您可以通过将其嵌入脚本来设置日期/时间:

<script>
  var date = new Date("<?php echo date("Y-m-d H:i:s"); ?>");
  alert(date);
</script>

var日期=新日期(“”);
警报(日期);

使用了Garrett answer,但是$.ajax的响应时间很短,这意味着不能立即调用其“getResponseHeader”方法

我认为这可以解决问题:

var Date1 = null;
var endInterval;
function DoJob() {
    if (Date1 == null) {
        if (endInterval)
            clearInterval(endInterval);
        endInterval = setInterval(DoJob, 100);
        return;
    }
    /*
        job to do...
    */
    if (endInterval)
        clearInterval(endInterval);
}
try {
    var oHead = $.ajax({ 'type': 'HEAD', 'url': '/' }).success(function () {
        Date1 = new Date(oHead.getResponseHeader('Date'));
    });
}
catch (err) {
    Date1 = null;
}
DoJob();

您确实意识到JQuery是在客户端而不是服务器上运行的,是吗?您需要服务器以某种方式或形式报告日期。您的web环境是什么-LAMP。网络?荣誉!这是一种黑客行为,但如果您无法访问服务器端代码,这是唯一的解决方案,就像在某些受限主机中一样。很好的方法:),头部请求可能是一种节省带宽的选项。我认为除了使用$.ajax()获取或发布外,没有其他方法可以执行任何类型的请求,但事实证明有一种方法。我已经修改了我的代码,这样它就可以执行HEAD请求。然而,这增加了一个额外的警告,因为我偶尔会遇到不能正确响应HEAD请求的服务器。