記錄

JavaScript) 서버시각 추출 + 요일 뽑기 본문

Computer language/Javascript

JavaScript) 서버시각 추출 + 요일 뽑기

surhommejk 2018. 6. 14. 10:46
function serverToday(){
         var xmlHttp;
         //분기하지 않으면 IE에서만 작동된다.
         if (window.XMLHttpRequest) { // IE 7.0 이상, 크롬, 파이어폭스일 경우 분기
         xmlHttp = new XMLHttpRequest();
         xmlHttp.open('HEAD',window.location.href.toString(),false);
         xmlHttp.setRequestHeader("Content-Type", "text/html");
         xmlHttp.send('');
         }else if (window.ActiveXObject) {
         xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
         xmlHttp.open('HEAD',window.location.href.toString(),false);
         xmlHttp.setRequestHeader("Content-Type", "text/html");
         xmlHttp.send('');
         }
         var st = xmlHttp.getResponseHeader("Date");
         var curDate = new Date(st);
         var curDateFmt; var year = curDate.getFullYear();
         var month = curDate.getMonth()+1;
         var day = curDate.getDate();
         var hours = curDate.getHours();
         var minutes = curDate.getMinutes();
         if(parseInt(month) < 10){
         month = 0 + "" + month;
         }
         if(parseInt(day) < 10){
         day = 0 + "" + day;
         }
         if(parseInt(hours) < 10){
         hours = 0 + "" + hours;
         } if(parseInt(minutes) < 10){
         minutes = 0 + "" + minutes;
         }
         curDateFmt = parseInt(year + "" + month + "" + day + "" + hours + "" + minutes);
         return curDateFmt;
        } // end - serverToday()



var nowtime = serverToday();
nowtime = nowtime.toString();
var year = nowtime.substring(0,4);
var month = nowtime.substring(4,6);
var day = nowtime.substring(6,8);

var week = new Array('일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일');

// 오늘에 해당하는 요일의 숫자값을 반환
// 일, 월, 화 ... ,토 = 0, 1, 2 ... ,6
var today = new Date(year+'-'+month+'-'+day).getDay();
var todayLabel = week[today];
alert('오늘은 ' + todayLabel);



보통 인터넷에 있는 new Date()의 문제점은 컴퓨터의 시각을 빼온다는 것이다. 가령 오늘이 15일이라 해도 클라이언트의 OS상 날짜가 10일이라면 new Date()로 빼오는 시각의 날짜는 10일이다. 따라서 클라이언트 상에서 서버 시각을 추출하고 여기서 요일을 빼오는 것이 더 정확한 요일을 뽑아오는 것이라 할 수 있다.

Comments