2012-01-08 16 views
1

私はthis tutorialに続きましたが、日付を設定してその日付にカウントダウンできるようにしたかったのです。"コンピュータ"の代わりにsetUTCDate()を追加する

それでも、それは私のコンピュータの時間をちょうどそれに基づいています。私はそれを誰のためにも標準にするにはどうしたらいいですか?

彼はsetUTCDate()を挙げましたが、私はそれをどのように実装するのか考えていませんか?

+0

checkTime(d.getUTCHours()+isBSTinEffect())にGETサーバーの時間を変更するには:

ここで私が以前書いた機能です。 – noob

+0

標準のutc時間を使うのは簡単ではないでしょうか? そして、私はどこかを読んでいます。「時計をカウントダウンすることはサーバ側では不可能です」しかし、どこを覚えていないのですか。 (これは....私が頑張ろうとしているすべての目的を破るだろう) – IWillNotChange

+0

サーバ側の言語でカウントダウンするのは、サーバ側の現在の日付を取得してJavaScriptで使用するだけではありません。 – noob

答えて

1

ここにいくつかのコードがあります。ここで

// By default, JS does not pad times with zeros 
function checkTime(i) { 
    if(i<10) i='0'+i; 
    return i; 
} 

// Set current UTC time 
var d = new Date(); 
var now = checkTime(d.getUTCHours()) + ':' + 
    checkTime(d.getUTCMinutes()) + ':' + 
    checkTime(d.getUTCSeconds()); 

// Output 
alert(now); 

JSFiddleです:それはフォーマットされ、UTC時間とalert年代にそれを取得します。

覚えていること: UTC!= GMT(これは常に英国の時刻と一致させたい場合にお読みください)。


BST(クロックが進む時)は、このソリューションを使用したい英国の誰にとっても考慮する必要があります。

// Function returning 0 or 1 depending on whether BST is in effect 
function isBSTinEffect() 
{ 
    var d = new Date(); 

    // Loop over the 31 days of March for the current year 
    for(var i=31; i>0; i--) 
    { 
     var tmp = new Date(d.getFullYear(), 2, i); 
     if(tmp.getDay() == 0) { lSoM = tmp; break; } 
    } 

    // Loop over the 31 days of October for the current year 
    for(var i=31; i>0; i--) 
    { 
     var tmp = new Date(d.getFullYear(), 9, i); 
     if(tmp.getDay() == 0) { lSoO = tmp; break; } 
    } 

    if(d < lSoM || d > lSoO) return 0; 
    else return 1; 
} 

は、BSTに考慮// Set current UTC time前にその機能を入れて、サーバー側の言語とcheckTime(d.getUTCHours())