-
날짜 가감 함수 addDate()Full-Stack/Front-end 2008. 12. 28. 10:45
VBScript 의 DateAdd 함수와 유사한 기능을 하도록 만든 JavaScript 용 함수
/* ----------------------------------------------------------------------------
* 특정 날짜에 대해 지정한 값만큼 가감(+-)한 날짜를 반환*
* 입력 파라미터 -----
* pInterval : "yyyy" 는 연도 가감, "m" 은 월 가감, "d" 는 일 가감
* pAddVal : 가감 하고자 하는 값 (정수형)
* pYyyymmdd : 가감의 기준이 되는 날짜
* pDelimiter : pYyyymmdd 값에 사용된 구분자를 설정 (없으면 "" 입력)*
* 반환값 ----
* yyyymmdd 또는 함수 입력시 지정된 구분자를 가지는 yyyy?mm?dd 값
** 사용예 ---
* 2008-01-01 에 3 일 더하기 ==> addDate("d", 3, "2008-08-01", "-");
* 20080301 에 8 개월 더하기 ==> addDate("m", 8, "20080301", "");
--------------------------------------------------------------------------- */
function addDate(pInterval, pAddVal, pYyyymmdd, pDelimiter)
{
var yyyy;
var mm;
var dd;
var cDate;
var oDate;
var cYear, cMonth, cDay;
if (pDelimiter != "") {
pYyyymmdd = pYyyymmdd.replace(eval("/\\" + pDelimiter + "/g"), "");
}
yyyy = pYyyymmdd.substr(0, 4);
mm = pYyyymmdd.substr(4, 2);
dd = pYyyymmdd.substr(6, 2);
if (pInterval == "yyyy") {
yyyy = (yyyy * 1) + (pAddVal * 1);
} else if (pInterval == "m") {
mm = (mm * 1) + (pAddVal * 1);
} else if (pInterval == "d") {
dd = (dd * 1) + (pAddVal * 1);
}
cDate = new Date(yyyy, mm - 1, dd) // 12월, 31일을 초과하는 입력값에 대해 자동으로 계산된 날짜가 만들어짐.
cYear = cDate.getFullYear();
cMonth = cDate.getMonth() + 1;
cDay = cDate.getDate();
cMonth = cMonth < 10 ? "0" + cMonth : cMonth;
cDay = cDay < 10 ? "0" + cDay : cDay;
if (pDelimiter != "") {
return cYear + pDelimiter + cMonth + pDelimiter + cDay;
} else {
return cYear + cMonth + cDay;
}
}[출처] [JavaScript] 날짜 가감 함수 addDate()|작성자 후리랜서
댓글