Php 在jQuery中获取默认服务器时间?
如何使用jQuery获取web服务器时间?要获取服务器代码,您需要在服务器端使用某种方法,在渲染时为页面添加时间,或者如果需要实时(ops),则需要使用jQuery对服务器进行ajax调用。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
这意味着您需要在服务器端有一些东西来响应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请求的服务器。