2012-04-02 3 views
1

私がHからの時間を転送カウントダウンタイマーを持っていた:i:sのこのスクリプトを使用したロングバージョンへ:Javascriptの時間のカウントダウンエラー

function parseTime() { 
var timeLeftStr; 
var timeLeft = 0; 

timeLeftStr = document.getElementById("timeleft").innerHTML; 

timeLeftStr.replace(/(\d+):(\d+):(\d+)/, function() { 
    for (var i = 1; i < arguments.length - 2; i++) { 
     // Convert to ms 
     timeLeft += arguments[i] * Math.pow(60, 3 - i) * 1000; 
    } 
}); 

countdown(new Date(timeLeft)); 
} 

function countdown(timeLeft) { 
var hours = timeLeft.getHours(); 
var minutes = timeLeft.getMinutes(); 
var seconds = timeLeft.getSeconds(); 

if (timeLeft.valueOf() == 0) { 
    document.getElementById("timeleft").innerHTML = "0 seconds"; 
window.location = 'home.php?pageid=' + getURLParam("pageid"); 
    return false; 
} else { 
    document.getElementById("timeleft").innerHTML = 
     (hours == 0 ? "" : hours + (hours == 1 ? " hour" : " hours")) + 
     (minutes == 0 ? "" : (hours ? (seconds ? ", " : " and ") : " ") + minutes + (minutes == 1 ? " minute" : " minutes")) + 
     (seconds == 0 ? "" : (hours || minutes ? " and " : "") + seconds + (seconds == 1 ? " second" : " seconds")); 

    setTimeout(function() { countdown(new Date(timeLeft - 1000)); }, 1000); 
} 
} 

window.onload = parseTime; 

エラーがオーストラリアに住んでいる私のユーザーが取得し続けるということです間違った「時」 元のタイマーは「23:45:05」のようなものですが、カウントダウンタイマーが始まると23時間ではなく「10時間45分5秒」と表示されます。

これはなぜ起こっているのでしょうか?ありがとうございました。

私はJSでそれほど素晴らしいとは言えませんが、これは友人によって作成されました。

最後に作業しました。

答えて

0

これは、javascriptがクライアントから現在の日付と時刻を取得するために発生します。つまり、あなたの国の23時には、世界の別の地域では、ページにリクエストするクライアントは、

server日付と時刻を同じ時刻に表示する場合は、すべてのクライアントで同じであることを確認するか、local timezoneを取得してオフセットを適用する必要があります。私が作ることができ、それはサーバー時間がかかる方法Javascript countdown using absolute timezone?

+0

あなたは、この同様の議論を見てとることができますか? –

+0

ローカル時刻ではなくサーバ時刻を取得するスクリプトをどのくらい正確に取得できますか? –

+0

時間、分、秒を返すサーバー側のリソースへのajax呼び出しを行います。あなたの能力にとってあまりにも複雑すぎると思われる場合は、javascriptで 'getTimezoneOffset()'を使用してください。また、この議論を見てください:http://stackoverflow.com/questions/8805613/javascript-countdown-using-absolute-timezone – fcalderan

関連する問題