Javascript 为什么我不能将服务器的日期时间传递给本地jquery脚本?

Javascript 为什么我不能将服务器的日期时间传递给本地jquery脚本?,javascript,php,jquery,Javascript,Php,Jquery,我有一个非常简单的timeofserver.php页面: <?php echo date('D, d M y H:i:s'); ?> 但是我得到的不是服务器时间(甚至是本地时间和警报,而是弹出窗口: Thu Jan 01 1970 01:00:00 GMT+0100 (Central Europe Standard Time) 此代码有什么问题?您使用的是头请求,它不包括响应正文。将“head”改为“GET” 否则,您可以将时间包含在标题中,并从那里获取时间,而不是将其发送

我有一个非常简单的timeofserver.php页面:

<?php
   echo date('D, d M y H:i:s');
?>
但是我得到的不是服务器时间(甚至是本地时间和警报
,而是弹出窗口:

Thu Jan 01 1970 01:00:00 GMT+0100 (Central Europe Standard Time)

此代码有什么问题?

您使用的是
头请求,它不包括响应正文。将“head”改为“GET”

否则,您可以将时间包含在标题中,并从那里获取时间,而不是将其发送到正文中

方法1)使用标题:

在PHP中将时间作为标题发送,将您的PHP更改为:

header("x-app-date: ".date('D, d M y H:i:s'));
然后在你的AJAX中获得日期,就像这样

$.ajax({
    'type': 'HEAD', 
    'url':'timeoftheserver.php',
    'complete': function(r){
         today = new Date(this.getResponseHeader('x-app-date'));
     }
});
方法2:使用主体

让PHP保持原样。 将Ajax更改为:

$.ajax({
    'type': 'GET', 
    'url': 'timeoftheserver.php',
    'complete': function(resp){
        today = new Date(resp);
    }
});

谢谢,但是当我换了头,什么也没变的时候,我还是得到了1970年1月1日星期四01:00:00 GMT+0100(中欧标准时间)
。你能给我一些第二条建议的例子吗?是的,只要你在进行ajax调用之前在全局范围内定义
。@randomuser1,尽管我应该警告你,使用synchronus ajax请求通常不是一个好主意,因为它会使浏览器挂起,直到完成为止。重新编写代码以在回调中执行可能需要很多工作,但实际上,这是正确的方法。将async更改为false实际上更像是一个快速而肮脏的解决方法。@randomuser1,好吧,在我花了这么多时间帮助你之后,你会接受我的答案,对吗P好的,如果您从响应中得到“object object”,这意味着您的jQuery正在解析来自JSON的响应。代码中的任何内容都无法解释发生这种情况的原因,因此请尝试手动将响应解析回字符串,并告诉我发生了什么。将此添加为
complete
函数的第一行,并告诉我发生了什么
resp=JSON.stringify(resp)@randomuser1哦,威尔德。好的,您正在查找responseText属性。所以,只需更改
today=新日期(resp)到<代码>今天=新日期(响应文本),并删除前面的
JSON.stringify()
行,您就可以开始了:D
$.ajax({
    'type': 'GET', 
    'url': 'timeoftheserver.php',
    'complete': function(resp){
        today = new Date(resp);
    }
});