我正在使用http://keith-wood.name/countdownRef.html#serverSync提到的jquery倒计时serverSync功能,但我无法将倒计时同步到servertime。我的代码写在文档中:
$(selector).countdown({
until: liftoffTime,
serverSync: serverTime
});
function serverTime() {
var time = null;
$.ajax({
url: 'http://myserver.com/serverTime.php',
async: false,
dataType: 'text',
success: function (text) {
time = new Date(text);
},
error: function (http, message, exc) {
time = new Date();
}
});
alert("Debug server time: " + time);
return time;
}
我在serverTime.php中的php代码
<?php
$now = new DateTime();
echo $now->format("M j, Y H:i:s O")."\n";
?>
当我在javascript中提醒时输出的时间是:
Sun Jun 24 2012 12:02:23 GMT + 0100(BST)
但是当我转到http://myserver.com/serverTime.php时,时间会以这种格式显示:
2012年6月24日12:03:35 +0100
非常不同。任何人都可以解释为什么它不同步,并且返回的不同日期格式是否会成为问题?
答案 0 :(得分:2)
您的php
和serverTime()
代码工作正常。
不同的时间格式不是问题,也不是内部Date
表示。
您为selector
和liftoffTime
变量分配了哪些值?
这是我的工作测试:
<html>
<head>
<title>ajax count down test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://keith-wood.name/js/jquery.countdown.js"></script> <!--maybe you shouldn't hotlink this file ;-) -->
</head>
<body>
<div id="defaultCountdown"></div>
<script>
function serverTime() {
var time = null;
$.ajax({
url: 'serverTime.php',
async: false,
dataType: 'text',
success: function (text) {
time = new Date(text);
},
error: function (http, message, exc) {
time = new Date();
}
});
return time;
}
$(function () {
$("#defaultCountdown").countdown({
until: new Date("Jun 24, 2012 16:00:00 +0000"),
serverSync: serverTime
});
});
</script>
</body>
</html>
如果您有任何疑问,请发表评论。