JavaScript/이론
[Javascript] Date
sirius
2021. 3. 18. 10:18
메서드 | 설명 |
getDate() | 로컬 시간을 사용하여 일(월 기준) 반환 |
getDay() | 로컬 시간을 사용하여 일(주 기준, 즉 요일)을 반환 |
getFullYear() | 로컬 시간을 사용하여 연도를 반환 |
getHours() | 로컬 시간을 사용하여 시간을 반환 |
getMilliseconds() | 로컬 시간을 사용하여 밀리초를 반환 |
getMinutes() | 로컬 시간을 사용하여 분을 반환 |
getMonth() | 로컬 시간을 사용하여 월을 반환 |
getSeconds() | 로컬 시간을 사용하여 초를 반환 |
getTime() | 1970년 1월 1일 00:00:00부터 현재시간 까지 경과한 시간을 밀리초로 반환 |
getYear() | 로컬 시간을 사용하여 연도 값을 반환. getFullYear() 사용을 권장 |
setDate() | 로컬 시간을 사용하여 일(월 기준)을 설정 |
setFullYear() | 로컬 시간을 사용하여 연도를 설정 |
setHours() | 로컬 시간을 사용하여 시간을 설정 |
setMilliseconds() | 로컬 시간을 사용하여 밀리초를 설정 |
setMinutes() | 로컬 시간을 사용하여 분을 설정 |
setMonth() | 로컬 시간을 사용하여 월을 설정 |
setSeconds() | 로컬 시간을 사용하여 초를 설정 |
setTime() | 날짜와 시간 값을 설정 |
setYear() | 로컬시간을 사용하여 연도 값을 설정. setFullYear() 사용을 권장 |
/*
* 요일은 0 ~ 6, 일요일 : 0, 토요일 : 6
* 달은 0 ~ 11, 1월 : 0, 12월 : 11
*/
var calendarUtil = function(date) {
/**
* 기본적인 셋팅
* 월별 마지막 날짜
* 윤년을 구해 윤년일 경우 2월의 마지막 달을 29로 변경
*/
/**
* 개발 순서
* 1. 입력된 달의 첫번째 요일을 구한다.
* 2. 입력된 달의 마지막 일을 구한다.
* 3. 한달에 몇 주인지 구한다.
* 4. 달력의 왼쪽 또는 오른쪽을 클릭했을 경우 현재 년 월에 1달을 추가하거나 뺀다.
*/
if(typeof(date) !== 'undefined')
{
date = date.split('/');
date = new Date(date[0], date[1], 1);
}
else
{
var date = new Date();
}
var currentYear = date.getFullYear(); //getYear은 Deprecated 되었다.
//월별 마지막 날을 입력한다.
var monthLastArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
//윤년일 경우 2월의 마지막 달을 29일로 설정한다.
if(currentYear % 4 == 0 && (currentYear % 100 != 0 || currentYear % 400 == 0)) {
monthLastArray[1] = 29;
}
//1. 입력된 달의 첫번째 요일을 구한다.
date.setDate(1);
var dayofweek = date.getDay();
//2. 입력된 달의 마지막 일을 구한다.
var currentMonth = date.getMonth();
var lastDay = monthLastArray[currentMonth];
//3. 한달이 몇 주인지 구한다.
var monthWeek = Math.ceil((dayofweek + lastDay) / 7);
//4. 달력의 왼쪽 또는 오른쪽을 클릭했을 경우 현재 년 월에 1달을 추가하거나 뺀다.
//1달전으로 돌아 갈 경우
var preDate = "";
if(currentMonth == 0)
preDate += (currentYear - 1) + "/" + 11 + "/" + 1;
else
preDate += currentYear + "/" + (currentMonth - 1) + "/" + 1;
//1달뒤로 갈 경우
var postDate = "";
if(currentMonth == 11)
postDate += (currentYear + 1) + "/" + 0 + "/" + 1;
else
postDate += currentYear + "/" + (currentMonth + 1 ) + "/" + 1;
return {
"currentYear" : currentYear,
"currentMonth" : currentMonth,
"monthWeek" : monthWeek,
"dayofweek" : dayofweek,
"lastDay" : lastDay,
"preDate" : preDate,
"postDate" : postDate,
"preLastDay" : monthLastArray[currentMonth - 1]
};
}