2011-10-30 3 views
2

내 웹 사이트에 시계를 추가하고 싶습니다. 중앙 시간대의 시간을 표시하고 싶습니다. 나는 지금까지 가지고있는 코드를 포함시켰다. 내 웹 사이트의 다른 도구가 활성화 될 때 사용자에게 알려주고 싶습니다 (중앙 표준 시간대의 야간에는 활성화되지 않습니다). 누구든지 (1) 이것을 중앙 시간에 고정하는 방법을 알고 있습니까? (2) 오후 8 시부 터 빨간색으로 변하게 할 수도 있습니다. - 7:30 a.m. (공구가 꺼져 있음을 나타냄)? 로컬 날짜 객체를 생성하는 경우특정 시간대의 자바 스크립트 시계를 만들고 싶습니다.

<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> 
관련 문제