메뉴 건너뛰기

조회 수 5702 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
/**
* 날짜관련 자바스크립트 공통함수
*
* 분단위 이하(= 초)는 고려하지 않았습니다.
* YYYYMMDDHHMI 형식의 String => 'Time'으로 칭함
*
* 주로 YYYYMMDD 까지만 쓰인다면 아래 함수들을
* YYYYMMDD 형식의 String => 'Date'로 하여 적당히
* 수정하시거나 아니면 함수를, 예를들어 isValidDate()처럼,
* 추가하시기 바랍니다.
*
* @version 2.0, 2001/01/28
* @author 박종진(JongJin Park), jongjpark@lgeds.lg.co.kr
*/


/**
* 유효한(존재하는) 월(月)인지 체크
*/
function isValidMonth(mm) {
   var m = parseInt(mm,10);
   return (m >= 1 && m <= 12);
}

/**
* 유효한(존재하는) 일(日)인지 체크
*/
function isValidDay(yyyy, mm, dd) {
   var m = parseInt(mm,10) - 1;
   var d = parseInt(dd,10);

   var end = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
   if ((yyyy % 4 == 0 && yyyy % 100 != 0) || yyyy % 400 == 0) {
       end[1] = 29;
   }

   return (d >= 1 && d <= end[m]);
}

/**
* 유효한(존재하는) 시(時)인지 체크
*/
function isValidHour(hh) {
   var h = parseInt(hh,10);
   return (h >= 1 && h <= 24);
}

/**
* 유효한(존재하는) 분(分)인지 체크
*/
function isValidMin(mi) {
   var m = parseInt(mi,10);
   return (m >= 1 && m <= 60);
}

/**
* Time 형식인지 체크(느슨한 체크)
*/
function isValidTimeFormat(time) {
   return (!isNaN(time) && time.length == 12);
}

/**
* 유효하는(존재하는) Time 인지 체크

* ex) var time = form.time.value; //'200102310000'
*     if (!isValidTime(time)) {
*         alert("올바른 날짜가 아닙니다.");
*     }
*/
function isValidTime(time) {
   var year  = time.substring(0,4);
   var month = time.substring(4,6);
   var day   = time.substring(6,8);
   var hour  = time.substring(8,10);
   var min   = time.substring(10,12);

   if (parseInt(year,10) >= 1900  && isValidMonth(month) &&
       isValidDay(year,month,day) && isValidHour(hour)   &&
       isValidMin(min)) {
       return true;
   }
   return false;
}

/**
* Time 스트링을 자바스크립트 Date 객체로 변환
* parameter time: Time 형식의 String
*/
function toTimeObject(time) { //parseTime(time)
   var year  = time.substr(0,4);
   var month = time.substr(4,2) - 1; // 1월=0,12월=11
   var day   = time.substr(6,2);
   var hour  = time.substr(8,2);
   var min   = time.substr(10,2);

   return new Date(year,month,day,hour,min);
}

/**
* 자바스크립트 Date 객체를 Time 스트링으로 변환
* parameter date: JavaScript Date Object
*/
function toTimeString(date) { //formatTime(date)
   var year  = date.getFullYear();
   var month = date.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
   var day   = date.getDate();
   var hour  = date.getHours();
   var min   = date.getMinutes();

   if (("" + month).length == 1) { month = "0" + month; }
   if (("" + day).length   == 1) { day   = "0" + day;   }
   if (("" + hour).length  == 1) { hour  = "0" + hour;  }
   if (("" + min).length   == 1) { min   = "0" + min;   }

   return ("" + year + month + day + hour + min)
}

/**
* Time이 현재시각 이후(미래)인지 체크
*/
function isFutureTime(time) {
   return (toTimeObject(time) > new Date());
}

/**
* Time이 현재시각 이전(과거)인지 체크
*/
function isPastTime(time) {
   return (toTimeObject(time) < new Date());
}

/**
* 주어진 Time 과 y년 m월 d일 h시 차이나는 Time을 리턴

* ex) var time = form.time.value; //'20000101000'
*     alert(shiftTime(time,0,0,-100,0));
*     => 2000/01/01 00:00 으로부터 100일 전 Time
*/
function shiftTime(time,y,m,d,h) { //moveTime(time,y,m,d,h)
   var date = toTimeObject(time);

   date.setFullYear(date.getFullYear() + y); //y년을 더함
   date.setMonth(date.getMonth() + m);       //m월을 더함
   date.setDate(date.getDate() + d);         //d일을 더함
   date.setHours(date.getHours() + h);       //h시를 더함

   return toTimeString(date);
}

/**
* 두 Time이 몇 개월 차이나는지 구함

* time1이 time2보다 크면(미래면) minus(-)
*/
function getMonthInterval(time1,time2) { //measureMonthInterval(time1,time2)
   var date1 = toTimeObject(time1);
   var date2 = toTimeObject(time2);

   var years  = date2.getFullYear() - date1.getFullYear();
   var months = date2.getMonth() - date1.getMonth();
   var days   = date2.getDate() - date1.getDate();

   return (years * 12 + months + (days >= 0 ? 0 : -1) );
}

/**
* 두 Time이 며칠 차이나는지 구함
* time1이 time2보다 크면(미래면) minus(-)
*/
function getDayInterval(time1,time2) {
   var date1 = toTimeObject(time1);
   var date2 = toTimeObject(time2);
   var day   = 1000 * 3600 * 24; //24시간

   return parseInt((date2 - date1) / day, 10);
}

/**
* 두 Time이 몇 시간 차이나는지 구함

* time1이 time2보다 크면(미래면) minus(-)
*/
function getHourInterval(time1,time2) {
   var date1 = toTimeObject(time1);
   var date2 = toTimeObject(time2);
   var hour  = 1000 * 3600; //1시간

   return parseInt((date2 - date1) / hour, 10);
}

/**
* 현재 시각을 Time 형식으로 리턴

*/
function getCurrentTime() {
   return toTimeString(new Date());
}

/**
* 현재 시각과 y년 m월 d일 h시 차이나는 Time을 리턴
*/
function getRelativeTime(y,m,d,h) {
/*
   var date = new Date();

   date.setFullYear(date.getFullYear() + y); //y년을 더함
   date.setMonth(date.getMonth() + m);       //m월을 더함
   date.setDate(date.getDate() + d);         //d일을 더함
   date.setHours(date.getHours() + h);       //h시를 더함

   return toTimeString(date);
*/
   return shiftTime(getCurrentTime(),y,m,d,h);
}

/**
* 현재 年을 YYYY형식으로 리턴
*/
function getYear() {
/*
   var now = new Date();
   return now.getFullYear();
*/
   return getCurrentTime().substr(0,4);
}

/**
* 현재 月을 MM형식으로 리턴
*/
function getMonth() {
/*
   var now = new Date();

   var month = now.getMonth() + 1; // 1월=0,12월=11이므로 1 더함
   if (("" + month).length == 1) { month = "0" + month; }

   return month;
*/
   return getCurrentTime().substr(4,2);
}

/**
* 현재 日을 DD형식으로 리턴

*/
function getDay() {
/*
   var now = new Date();

   var day = now.getDate();
   if (("" + day).length == 1) { day = "0" + day; }

   return day;
*/
   return getCurrentTime().substr(6,2);
}

/**
* 현재 時를 HH형식으로 리턴
*/
function getHour() {
/*
   var now = new Date();

   var hour = now.getHours();
   if (("" + hour).length == 1) { hour = "0" + hour; }

   return hour;
*/
   return getCurrentTime().substr(8,2);
}

/**
* 오늘이 무슨 요일이야?

* ex) alert('오늘은 ' + getDayOfWeek() + '요일입니다.');
* 특정 날짜의 요일을 구하려면? => 여러분이 직접 만들어 보세요.
*/
function getDayOfWeek() {
   var now = new Date();

   var day = now.getDay(); //일요일=0,월요일=1,...,토요일=6
   var week = new Array('일','월','화','수','목','금','토');

   return week[day];
}

List of Articles
번호 제목 날짜 조회 수
107 예제 - 자바스크립트로 현재 달의 달력 만들기 (calendar) 2015.06.19 10061
106 마우스 드래그, 오른쪽 팝업메뉴, 선택 막기 (IE11, 파이어폭스, 크롬 확인) 2015.06.19 8564
105 Checkbox : 체크박스 체크여부 확인 file 2015.06.19 19008
104 텍스트박스(input type = "text") 숫자 증가, 감소 시키기 - 쇼핑몰 주문 수량 file 2015.06.19 12278
103 정규식을 이용한 콤마(comma) 제거하기 2015.06.19 6804
102 정규식을 이용한 실시간 콤마(comma) 넣기 2015.06.19 7876
101 자바스크립트로 네트워크 연결 확인하기 (Navigator onLine Property) file 2015.06.19 6197
100 location.href 로 새창 여는 방법 (target=_blank 효과) 2015.06.19 9390
99 CheckBox 전체 선택 & 해제 2015.04.28 5580
98 선택(CheckBox) 된 Row 삭제 - 화면에서 추가된 Row 2015.04.28 13536
97 선택된 데이터 부모창에 넘기기 (iframe ☞ 부모창) 2015.04.28 6614
96 2단계 트리메뉴 마우스오버(mouseover), 온포커스(onfocus) 구현 2015.04.06 8200
95 jquery 메뉴 - 아래로 한번에 전체가 펼처짐 file 2015.04.06 11698
94 자바스크립트 이벤트 목록입니다. ( javascript event ) 2015.04.06 5596
93 '레이블', 반복문을 제어하자! file 2015.02.03 5540
92 'Array', 배열 및 다차원 배열 선언에 대해 알아보자! 2015.02.03 11103
91 배열의 리터럴 선언, 또다른 배열 선언 방법! 2015.02.03 6408
90 '문자 ↔ 숫자', 타입을 바꿔보자! 2015.02.03 6207
89 드롭다운 메뉴를 만들어보자! -1탄 file 2015.02.03 8168
88 'onmouseover', 마우스 오버 효과 - 글씨 바꾸기! file 2015.02.03 9433
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved