2011-10-30 8 views
2

ウェブサイトに時計を追加して、中央のタイムゾーンに時刻を表示したいと思います。私はそれまでに持っていたコードを含めました。私はこれを使用して、自分のWebサイト上の他のツールがアクティブになる(ユーザーが中部のタイムゾーンで夜間にアクティブではない)ことをユーザーに伝えたいと思います。誰もが(1)これを中央時間にロックする方法を知っていますか? (2)午後8時から赤色に変えてください。 - 7:30 a.m.(ツールがオフになっていることを示します)?私は特定のタイムゾーンのjavascriptクロックを作成したいと思います

<script type="text/javascript"> 

function GetClock(){ 
d = new Date(); 
nhour = d.getHours(); 
nmin = d.getMinutes(); 
    if(nhour == 0) {ap = " AM";nhour = 12;} 
else if(nhour <= 11) {ap = " AM";} 
else if(nhour == 12) {ap = " PM";} 
else if(nhour >= 13) {ap = " PM";nhour -= 12;} 

if(nmin <= 9) {nmin = "0" +nmin;} 

document.getElementById('clockbox').innerHTML=""+nhour+":"+nmin+ap+""; 
setTimeout("GetClock()", 1000); 
} 
window.onload=GetClock; 
</script> 
<div id="clockbox"></div> 

答えて

5

あなたはローカルの日付オブジェクトを作成する場合、それは(実際のローカルタイムゾーンではないかもしれませんこれは、それがに設定されることがあります何でも)、ローカルシステムのタイムゾーンになります。 DateオブジェクトにはgetTimezoneOffsetメソッドがあり、ローカルの日付オブジェクトに追加された場合はUTC(本質的にGMT)に設定される数値を分単位で返します。その後、そのタイムゾーンで時間を取得するために、 "中央時間"(それが何であってもよい)のオフセットを減算することができます。

次に、そのゾーン内の時刻にその日付オブジェクトを使用できます。

タイムゾーンが米国中部標準時間帯の場合、標準オフセットは-6時間、夏時間オフセットは-5時間です。特定のオフセットでの日付オブジェクトを返す関数は次のとおりです。

/* Create a date object with the desired offset. 
    Offset is the time that must be added to local time to get 
    UTC, so if time zone is -6hrs, offset is +360. If time zone 
    is +10hrs, offset is -600. 
*/ 
function getOffsetDate(offsetInMintues) { 
    // Get local date object 
    var d = new Date(); 
    // Add local time zone offset to get UTC and 
    // Subtract offset to get desired zone 
    d.setMinutes(d.getMinutes() + d.getTimezoneOffset() - offsetInMintues); 
    return d; 
} 

はそれを適切なオフセットを与え、そのオフセットと日付オブジェクトを返します。私たちのために、中央夏時間

var centralDate = getOffsetDate(360); 

::米国の標準的な中央の時間を取得するには

var h = centralDate.getHours(); 
var m = centralDate.getMinutes(); 
if (h >= 20 || 
    h <7 || 
    (h == 7 && m <= 30) { 
    // the time is between 20:00 and 07:30 the following day. 
} 
2

日:

var centralDSTDate = getOffsetDate(300); 

は、特定の時間の間に何かをすることを、あなたのような何かを行うことができますオブジェクトは好きな値に変更でき、自動的に修正されます。 "windTheClock(2);"タイムゾーンオフセットを+2 UTCに設定します。

<script type="text/javascript"> 

function addLeadingZero(n) { 
    if (n < 10) { 
     n = "0" + n; 
    } 
    return n; 
} 

function windTheClock(timeZoneOffset) 
{ 
    var d = new Date(); 
    d.setHours(d.getUTCHours() + timeZoneOffset); // set time zone offset 
    var h = d.getHours(); 
    var m = d.getMinutes(); 
    var s = d.getSeconds(); 
    h = addLeadingZero(h); 
    m = addLeadingZero(m); 
    s = addLeadingZero(s); 
    document.all["clock"].innerHTML = h + ":" + m + ":" + s; 
    setTimeout(function(){ windTheClock(timeZoneOffset) }, 1000); 
} 

window.onload = function() { 
    windTheClock(2); 
} 

</script> 

<div id="clock"></div> 
関連する問題