Php jQuery倒计时服务器同步15小时差

Php jQuery倒计时服务器同步15小时差,php,jquery,Php,Jquery,我在用基思·伍兹倒计时(http://keith-wood.name/countdown.html)使用服务器同步功能。这在一个国家似乎效果很好,但当我检查来自另一个国家的倒计时时,似乎相差15小时 因此,在澳大利亚,倒计时显示为1天,但在美国,倒计时显示为1天15小时。我已经完全按照网站上的解释实现了服务器端代码,但仍然存在时差。如果我更改了本地时钟,它会更改倒计时时间,但当点击刷新时,倒计时会显示正确的时间量,因此我知道它会获取服务器时间。然而,在美国仍然存在时差 如果读取服务器时间,你知道

我在用基思·伍兹倒计时(http://keith-wood.name/countdown.html)使用服务器同步功能。这在一个国家似乎效果很好,但当我检查来自另一个国家的倒计时时,似乎相差15小时

因此,在澳大利亚,倒计时显示为1天,但在美国,倒计时显示为1天15小时。我已经完全按照网站上的解释实现了服务器端代码,但仍然存在时差。如果我更改了本地时钟,它会更改倒计时时间,但当点击刷新时,倒计时会显示正确的时间量,因此我知道它会获取服务器时间。然而,在美国仍然存在时差

如果读取服务器时间,你知道为什么会出现这种情况吗

function serverTime() { 
  var time = null; 
  $.ajax({url: 'server-time.php?random=' + Math.floor(Math.random() * 1000000), 
       async: false,
       dataType: 'text', 
       success: function(text) { 
          time = new Date(text); 
       }, error: function(http, message, exc) { 
          time = new Date(); 
       }}); 
       return time; 
    }

    var launchDate = "";

    $(function () {
       launchDate = new Date(
           2012,
           5-1,
           22,
           11
       );
       $('#launchCountdown').countdown('destroy')
       $('#launchCountdown').countdown({
                until: launchDate,
                serverSync: serverTime,
                format: 'DHMS', 
                expiryText: '<p>It\'s all over</p>'
                //onTick: highlightLast5
            });
        });
函数serverTime(){
var-time=null;
$.ajax({url:'server time.php?random='+Math.floor(Math.random()*1000000),
async:false,
数据类型:“文本”,
成功:函数(文本){
时间=新日期(文本);
},错误:函数(http、消息、exc){
时间=新日期();
}}); 
返回时间;
}
var launchDate=“”;
$(函数(){
launchDate=新日期(
2012,
5-1,
22,
11
);
$(“#启动倒计时”)。倒计时(“销毁”)
$(“#启动倒计时”)。倒计时({
至:发射日期,
serverSync:serverTime,
格式:“DHMS”,
expiryText:“一切都结束了”
//onTick:highlightLast5
});
});

你必须自己处理时区问题。倒计时将自动应用这些设置:

此日期和时间应考虑到服务器的时区,并且在开始或更改倒计时时,该时间与客户端时间之间的任何差异都将应用于倒计时

因此,由于脚本是基于客户端的设置加载的,因此会考虑客户端的时区

编辑更多内容:

在不知道确切代码的情况下,我无法确定,但您应该将其设置为GMT,然后偏移到服务器时间一次,而不是将其设置为服务器时间,这样可以解决自动偏移到每个时区的问题,这是您不想要的。因此,在以下情况下使用:


非常感谢。我以前从未使用过UTCDate,所以我不知道这是什么。
$(selector).countdown({ 
    until: new Date(2012, 8 - 1, 8)}); // add a date object with a timezone
$(selector).countdown({ 
    // create the offset based on your server timezone (e.g Sydney)
    // this overrides servertime with a static value that you want
    until: $.countdown.UTCDate(+10, 2012, 1 - 1, 26),  timezone: +10}); 
$(selector).countdown({until: '+1m -1d'}); // set it to one one day from now