게시판형 웹사이트를 구현하다 보면 검색 시작일 ~ 검색 종료일을 검색할 때 datePicker로 많이 사용한다.

지난번 프로젝트 때 다 만들어 놓았던 util 함수였는데, 내부망이라서 코드를 다 날려버렸다.

새로 시작한 프로젝트에서도 비슷한 유형의 검색을 하게 되어 추후 사용할지도 몰라 업로드한다.🤣

 

/* utils.js */

let utlls = {
    /**
     * 기준일자 default 셋팅
     * @param fromId
     * @param toId
     */
    searchDateSet : function (fromId = '#do_date', toId = '#do_date1') {
        let nowDate = new Date();
        let setMonth = (nowDate.getMonth()+1).toString();
        let setDay = nowDate.getDay().toString();
        let setDate = nowDate.getFullYear() + (setMonth < 10 ? '0' + setMonth : setMonth) + (setDay < 10 ? '0' + setDay : setDay);  // yyyymmdd
        if(fromId.indexOf('cpn_date') > Number(-1)) {
            setDate = nowDate.getFullYear() + '/' + (setMonth < 10 ? '0' + setMonth : setMonth);    // yyyy/mm
        }
        $(fromId).val(setDate);
        $(toId).val(setDate);
    },

    /**
     * 기준일자 데이트피커 포맷
     * @param fromId : 기준시작일
     * @param toId   : 기준종료일
     */
    datePickerFormat : function (fromId = '#do_date', toId = '#do_date1') {
       if(fromId.indexOf('cpn_date') > Number(-1)){
           $(fromId).datepicker({
               dateFormat: 'yy/mm'
           });
           $(toId).datepicker({
               dateFormat: 'yy/mm'
           });
       } else {
           $(fromId).datepicker({
               dateFormat: 'yymmdd'
           });
           $(toId).datepicker({
               dateFormat: 'yymmdd'
           });
       }
    },

    /**
     * 기준일자 value 체크
     * @param fromId
     * @param toId
     * @param obj
     */
    searchDateValidation : function (fromId = '#do_date', toId = '#do_date1', obj) {
        let fromDate = $(fromId).val();
        let toDate = $(toId).val();

        if(fromDate.replace("/", "") && toDate.replace("/", "") && fromDate > toDate) {
            if(obj.id.indexOf("1") == -1) { // 기준시작일
                alert('기준시작일은 기준종료일보다 빠를 수 없습니다.');
                $(fromId).val(toDate);
            }else {
                alert('기준종료일은 기준시작일보다 늦을 수 없습니다.');
                $(toId).val(fromDate);
            }
        }
    }
}

utils.js를 따로 작성해 주었다. 게시판 형일 경우 비슷하게 날짜를 포맷하는 경우가 많아. 그 경우 파라미터에 default id를 지정해 준다. 포맷 형식이 다른 id는 if문을 사용. * default id값에 #을 포함하여 넣는건 추천하지 않는다. 초보인지라.. 더 좋은 방법이 생각나면 코드 수정을 할 예정....... 피트백도 좋습니다.

 

<script type="text/javascript" src="utils.js"></script>
<script type="text/javascript">
    $(function() {
        utlls.datePickerFormat('#cpn_date', '#cpn_date1');
        utlls.searchDateSet('#cpn_date', '#cpn_date1');
    });
</script>        
<body>
	<input type="text"  id="cpn_date"  readonly name="cpn_date" onchange="utlls.searchDateValidation('#cpn_date', '#cpn_date1', this);"> -
	<input type="text"  id="cpn_date1" readonly name="cpn_date1" onchange="utlls.searchDateValidation('#cpn_date', '#cpn_date1', this);">
</body>

html 코드는 간략하게 작성하였다.

샘플 이미지

 

+ Recent posts