반응형
오랜만에 또 개발 관련된 블로그를 적습니다.
현재 기준으로 저번달 첫일 , 다음달 말일을 구해서 세팅해야 되서 아래와 같이 구현하였습니다.
하나의 함수로 사용하기 위해 파라미터는 '현재날짜' , '이전 , 다음'을 넣어두었습니다
코드는 아래와 같이 사용 하면 됩니다.
//vDate : yyyymmdd or yyyy-mm-dd / vType : Prev(이전달) , Next(다음달)
function fnSetPrevNextDate(vDate, vType) {
var vValue = vDate;
var vValue_Num = vValue.replace(/[^0-9]/g, "");
if (_fnToNull(vValue_Num) == "") {
_fnAlertMsg("날짜를 입력 해 주세요.");
return false;
}
//8자리가 아닌 경우 false
if (vValue_Num.length != 8) {
_fnAlertMsg("날짜를 20200101 or 2020-01-01 형식으로 입력 해 주세요.");
return false;
}
var vYYYY = vValue_Num.substring(0, 4);
var vMM = vValue_Num.substring(4, 6);
var vDD = vValue_Num.substring(6, 8);
var d = new Date(vMM + "/" + vDD + "/" + vYYYY);
var monthOfYear = d.getMonth();
if (vType == "Prev") {
d.setMonth(monthOfYear - 1);
vValue = d.getFullYear() + "-" + _pad(d.getMonth() + 1, 2) + "-" + "01";
}
else if (vType == "Next") {
d.setMonth(monthOfYear + 1);
var vDate = new Date(d.getFullYear(), d.getMonth() + 1, 0);
vValue = vDate.getFullYear() + "-" + _pad(vDate.getMonth() + 1, 2) + "-" + _pad(vDate.getDate(), "2");
}
return vValue;
}
//숫자 width만큼 앞에 0 붙혀주는 함수 EX) widht = 2일떄 1은 01로 찍힘
function _pad(n, width) {
n = n + '';
return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n;
}
'IT > JS + Jquery' 카테고리의 다른 글
[카카오맵API] 정확한 위치 (위도, 경도) 찾기 (0) | 2023.06.16 |
---|---|
[JavaScript] 각 나라의 표기 방식에 맞는 날짜를 표기하는 방법 (GMT) (0) | 2023.02.07 |
[JavaScript] InnerHTML으로 그려진 HTML Height 가져오기 (0) | 2022.09.19 |
[JavaScript , C#] Ajax 파라미터 DataSet 형식으로 보내기 (0) | 2022.08.16 |
[JavaScript] JavaScript 파일 여부 확인 (0) | 2021.11.04 |