반응형

오랜만에 글을 쓰는 것 같습니다.

 

원하는 날짜를 입력 후 앞뒤로 1주 전 혹은 2주 후 날짜를 가져와야 하는 문제가 있었는데

 

아래와 같이 매개변수를 현재 날짜를 입력 받고 전 후로 몇일 만큼 전에있는 데이터를 가져올지 세팅하는 함수입니다.

 

일 기준으로 되어있기 때문에

 

한달 단위 , 년 단위는 세팅이 되어있지 않습니다.

 

vDate는 년월일 세팅 Ex)20210827 or 2021-08-27 

vDiff는 몇일 전 후 세팅입니다 EX) 7 (일주일 후 날짜) , -7 (일주일 전 날짜)

function _fnSetDate(vDate,vDiff) {

    var vValue = vDate;
    var vValue_Num = vValue.replace(/[^0-9]/g, "");

    var rxDatePattern = /^(\d{4})(\d{1,2})(\d{1,2})$/; //Declare Regex                  
    var dtArray = vValue_Num.match(rxDatePattern); // is format OK?

    var dtYear = dtArray[1];
    var dtMonth = dtArray[2];
    var dtDay = dtArray[3];

    var nowDate = new Date(dtYear + "/" + dtMonth + "/" + dtDay);
    var weekDate = nowDate.getTime() + (vDiff * 24 * 60 * 60 * 1000);
    nowDate.setTime(weekDate);

    var weekYear = nowDate.getFullYear();
    var weekMonth = nowDate.getMonth() + 1;
    var weedDay = nowDate.getDate();

    if (weekMonth < 10) { weekMonth = "0" + weekMonth; }
    if (weedDay < 10) { weedDay = "0" + weedDay; }
    var result = weekYear + "-" + weekMonth + "-" + weedDay;

    return result;

}

 

 

 

+ Recent posts