CODE/Javascript

서버 시간 및 표준 시간 구하기 (XMLHttpRequest)

AGAL 2021. 7. 30. 11:16
반응형

[출처 : https://flyingsquirrel.medium.com]

 

서버 시간 가져오기

function serverTime() {
    var xmlHttp;
    // XMLHttpRequest는 대부분의 브라우저 지원가능: https://caniuse.com/#search=XMLHttpRequest
    if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();            
    // InternetExplorer ActiveXObject 지원하는 경우
    } else if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
    }        
    /*
        xmlHttp.open : 헤더 정보만 받기 위해 HEAD방식으로 요청.
            - HEAD 정보만 요청, async (비동기) false 옵션을 줘서 동기로 요청.
            - Synchronous XMLHttpRequest는 deprecated되었기 때문에 사용을 권장하지 않음.
        
        xmlHttp.setRequestHeader : reqeust header를 설정
            - 안보내도 되고, xmlHttp.setRequestHeader("Authorization", "ABCDEFG"); 이런식으로 보내도 된다.
        
        * xmlHttp.send : HTTP 요청
    */
    xmlHttp.open('HEAD', window.location.href.toString(), false);
    xmlHttp.setRequestHeader("Content-Type", "text/html");
    xmlHttp.send('');

    // xmlHttp.getAllResponseHeaders() : 모든 헤더 정보 조회
    return xmlHttp.getResponseHeader("Date"); // type: string
}

 

 

서버 시간으로 기준으로 한국 표준 시간 구하기

function serverTime() {
 	...
};

// 1. 현재 시간 (서버시간 기준)
var curr = new Date(serverTime()); 

// 2. UTC 시간 계산
var utc = curr.getTime() + (curr.getTimezoneOffset() * 60 * 1000); 

// 3. UTC to KST (UTC + 9시간)
var KR_TIME_DIFF = 9 * 60 * 60 * 1000;
var now = new Date(utc + (KR_TIME_DIFF)); 

// 4. to Timestamp
var timestamp =+ now / 1000;
반응형