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;
반응형