我有一个非常简单的 timeoftheserver.php 页面:
<?php
echo date('D, d M y H:i:s');
?>
在我的本地脚本上也很简单:
var today;
try {
today = new Date($.ajax({'type': 'HEAD', 'url': 'timeoftheserver.php'}).getResponseHeader('Date'));
}
catch(err) {
today = new Date();
alert("here");
}
alert(today);
但我得到的不是服务器时间(甚至是本地时间和警报 here
):
Thu Jan 01 1970 01:00:00 GMT+0100 (Central Europe Standard Time)
这段代码有什么问题?
您正在使用 head
请求,其中不包含响应正文。将“head”改为“GET”。
否则,您可以在 header 中包含时间并从那里获取它,而不是将其发送到正文中。
方法 1) 使用 header :
在 PHP 中将时间作为 header 发送,将 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'));
}
});
方法二:使用正文
让您的 PHP 保持原样。
将您的 Ajax 更改为:
$.ajax({
'type': 'GET',
'url': 'timeoftheserver.php',
'complete': function(resp){
today = new Date(resp);
}
});