/** * 날짜관련 * @author 이호영 * @since 2024.07.15 * @version 1.0 * @see * *
 * << 개정이력(Modification Information) >>
 *
 *   수정일         수정자        수정내용
 *  ----------    --------    ---------------------------
 *  2024.07.15    이호영        최초 생성
 *  2020.xx.xx    
 *  
*/ /** * 검색 날짜관련 ID와 체크할 월을 가지고 체크하는 function * @param {String} a 검색 시작 ID * @param {String} b 검색 종료 ID * @param {String} c 체크할 month * @returns {Boolean} a날짜와 b날짜를 비교해서 c월 이상이면 false 이하면 true */ function fn_G_cmndataValueChk(startId, endId, chkMonth) { // 시작일자와 종료일자를 가져오기 var startDate = document.getElementById(startId).value; var endDate = document.getElementById(endId).value; // 날짜가 입력되었는지 확인 if (!startDate || !endDate) { alert("검색 시작일자와 종료일자를 입력해주세요."); return false; } // 날짜 형식으로 변환 var start = new Date(startDate); var end = new Date(endDate); // 날짜 유효성 체크 if (isNaN(start.getTime()) || isNaN(end.getTime())) { alert("유효한 날짜 형식을 입력해주세요."); return false; } // 종료일자를 기준으로 chkMonth 개월 전의 날짜 계산 var maxStartDate = new Date(end); maxStartDate.setMonth(maxStartDate.getMonth() - chkMonth); // 시작일자가 종료일자 기준 chkMonth 개월 전보다 이전인지 확인 if (start <= maxStartDate) { alert("총 검색 기간은 " + chkMonth + "개월을 넘을 수 없습니다."); return false; } return true; } /** * 이번년도 시작날짜와 종료날짜 구하기 * @param {String} a 값 입력할 search start input ID * @param {String} b 값 입력할 search start input ID * @returns {String} a ID value 해당년도/01/01 * {String} b ID value 해당년도/12/31 */ function fn_G_getCurrYearDateRange(startId, endId) { // 현재 년도 구하기 var currentYear = new Date().getFullYear(); // 현재 년도를 기준으로 시작일과 종료일 설정 var startOfYear = currentYear + '/01/01'; var endOfYear = currentYear + '/12/31'; $('#'+startId).val(startOfYear); $('#'+endId).val(endOfYear); } /** * 몇개월 전 date 구하기 * @param {String} a 값 입력할 search input ID * @param {String} b 값 구고하고 싶은 month번째 전월 * @returns {String} ex) b = 3; a value 해당년도/해당달-3/해당일+1 */ function fn_G_getPrevMonth(searchId, month) { var d = new Date(); d.setDate(d.getDate() +1); var monthOfYear = d.getMonth(); d.setMonth(monthOfYear - month); console.log('getDateStr(d) : ', getDateStr(d)); $('#'+searchId).val(getDateStr(d)); } /** * 해당 년월일 가져오기 * @param {String} a 값 입력할 search input ID * @returns {String} ID value 해당년도/해당달/해당일 */ function fn_G_getCurrDate(searchId) { var d = new Date(); $('#'+searchId).val(getDateStr(d)); } // 날짜를 원하는 포멧으로 수정후 리턴 Str function getDateStr(myDate){ var year = myDate.getFullYear(); var month = ("0"+(myDate.getMonth()+1)).slice(-2); var day = ("0"+myDate.getDate()).slice(-2); return ( year + '/' + month + '/' + day ); } /** * 검색 날짜관련 ID로 검색 시작일 최대 기간을 제한 function * @param {String} a 검색 시작 ID * @param {String} b 최대 기간 달 수 * @returns {Boolean} a날짜와 현재 날짜를 비교해서 차이가 b월 이상이면 false 이하면 true */ function fn_G_limitDateChk(startId, limitMonth) { // 시작일자 가져오기 var startDate = document.getElementById(startId).value; // 날짜 형식으로 변환 및 현재 날짜 설정 var start = new Date(startDate); var today = new Date(); var maxDate = new Date(today); maxDate.setMonth(maxDate.getMonth() - limitMonth); if(start < maxDate){ alert("검색 시작일자를 최근 "+limitMonth+"개월 이내로 입력해주세요."); return false; } return true; }