2012-01-08 2 views
1

나는 this tutorial을 따라 갔지만 날짜를 설정하고 해당 날짜로 카운트 다운 할 수 있기를 원했습니다."컴퓨터"시간을 대체 할 setUTCDate() 추가

그럼에도 불구하고, 그것은 내 컴퓨터의 시간을 막을 것입니다. 어떻게 모든 사람에게 표준이 될 수 있도록 만들 수 있습니까?

그는 setUTCDate()을 언급했지만 구현 방법을 모르고 있습니까?

+0

checkTime(d.getUTCHours()+isBSTinEffect())에 도착 서버 시간을 변경하려면 :

여기에 내가 이전에 쓴 기능입니다. – noob

+0

표준 utc 시간을 사용하는 것이 더 쉽지 않을까요? 그리고 저는 어딘가에서 "서버 측에서 시계 카운트 다운을하는 것은 불가능합니다"라고 읽었습니다. (.... 어느 쪽이 내가 LOL을하려고하는 모든 목적을 이길 것인가?) – 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())

관련 문제