ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서버 시간 및 표준 시간 구하기 (XMLHttpRequest)
    CODE/Javascript 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;
    반응형

    댓글

Luster Sun