jquery倒计时serverSync无法正常工作

时间:2012-06-24 11:06:58

标签: php javascript jquery countdown

我正在使用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

非常不同。任何人都可以解释为什么它不同步,并且返回的不同日期格式是否会成为问题?

1 个答案:

答案 0 :(得分:2)

您的phpserverTime()代码工作正常。

不同的时间格式不是问题,也不是内部Date表示。

您为selectorliftoffTime变量分配了哪些值?

这是我的工作测试:

<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>

如果您有任何疑问,请发表评论。