0

ここでカウントダウンを使用していますhttp://keith-wood.name/countdown.htmlサーバー時間とすべてを追加しましたが、夏時間調整により、アプリケーションはhttp://wwwですべてのカウントダウン時間に1時間を追加します。 artfido.com

夏時間で更新されないようにサーバー時間を変更しようとしましたが、カウントダウンに1時間が追加されています。

UTC時間は+10ですが、追加の時間を持たないように変更する方法がわかりません。

コードサンプル

server-time.php  
<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Fri, 1 Jan 2010 00:00:00 GMT"); // Date in the past 
header("Content-Type: text/plain; charset=utf-8"); // MIME type 
$now = new DateTime();
echo $now->format("M j, Y H:i:s O")."\n";
?>

Countdown script
$('#defaultCountdown').countdown({
until: endAuction,
serverSync: serverTime,
timezone: +10,
format: 'DHMS',...

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; 
}
4

1 に答える 1

0

このようにコードを使用しました:

function serverTime() {
    var time = null;
    $.ajax({url: 'cgi/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;
}

AJAX 呼び出しは非同期であるため、この関数は何も返しません。1 つの良い方法は、success 関数で行うことです。タイマーの初期化を意味しました。

このserverTime()関数を呼び出すと、常に が返されるためnullです。インスタントではありません。1 つのことを行います。関数を呼び出しstartTimer(time)て、サーバーの時間をtime変数に渡し、startTimer()関数内で次のように定義します。

function startTimer(time)
{
    var endAuction = "";
    $(function () {
        endAuction = new Date(
            2012,
            10,
            08,
            12,
            24,
            26                                                                );
        $('#defaultCountdown8077').countdown('destroy')
        $('#defaultCountdown8077').countdown({
            until: endAuction,
            serverSync: time,
            timezone: +10,
            format: 'DHMS',
            expiryUrl: 'http://www.artfido.com'
        });
    });
}

また、serverTime();あなたは途中で電話をかけていますが、決して役に立ちません。

JavaScript コードは次のようになります。

function initTimer() {
    var time = null;
    $.ajax({url: 'cgi/server-time.php?random=' + Math.floor(Math.random() * 1000000),
        async: false, dataType: 'text',
        success: function(text) {
            time = new Date(text);
            startTimer(time);
        }
    });
}
于 2012-10-09T04:27:00.260 に答える