Files
sam-kd/js/date.js
hskwon aca1767eb9 초기 커밋: 5130 레거시 시스템
- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경
- DB 연결 하드코딩 → .env 기반으로 변경
- MySQL strict mode DATE 오류 수정
2025-12-10 20:14:31 +09:00

732 lines
19 KiB
JavaScript

function alldatesearch() { // 전체 년도 설정
// 현재 날짜를 가져옵니다.
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; // January is 0!
var yyyy = today.getFullYear();
// 일(day)과 월(month)이 10보다 작으면 앞에 0을 붙입니다.
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
// 현재 날짜를 mm/dd/yyyy 형식으로 변환합니다.
today = mm + '/' + dd + '/' + yyyy;
// 시작 날짜를 '2010-01-01'로 고정합니다.
var fromAllDate = '2010-01-01';
// 종료 날짜를 현재 날짜(yyyy-mm-dd)로 설정합니다.
var toAllDate = yyyy + '-' + mm + '-' + dd;
// HTML 문서에서 날짜 입력 필드의 값을 설정합니다.
document.getElementById("fromdate").value = fromAllDate;
document.getElementById("todate").value = toAllDate;
// 폼을 제출하여 검색 효과를 발생시킵니다.
document.getElementById('board_form').submit();
}
function up_pre_year(){ // 윗쪽 전년도 추출
// document.getElementById('search').value=null;
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
today = mm+'/'+dd+'/'+yyyy;
yyyy=yyyy-1;
frompreyear = yyyy+'-01-01';
topreyear = yyyy+'-12-31';
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function pre_year(){ // 전년도 추출
// document.getElementById('search').value=null;
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
today = mm+'/'+dd+'/'+yyyy;
yyyy=yyyy-1;
frompreyear = yyyy+'-01-01';
topreyear = yyyy+'-12-31';
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function up_pre_month(){ // 전전월
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; // January is 0!
var yyyy = today.getFullYear();
if(dd < 10) {
dd = '0' + dd;
}
mm = mm - 1;
if(mm < 1) {
mm = '12';
yyyy = yyyy - 1; // 연도 조정
}
if(mm < 10) {
mm = '0' + mm;
}
var frompreyear = yyyy + '-' + mm + '-01';
var topreyear;
// 월의 마지막 날짜 계산
switch (mm) {
case '01':
case '03':
case '05':
case '07':
case '08':
case '10':
case '12':
topreyear = yyyy + '-' + mm + '-31';
break;
case '02':
// 윤년 계산
if ((yyyy % 4 === 0 && yyyy % 100 !== 0) || (yyyy % 400 === 0)) {
topreyear = yyyy + '-' + mm + '-29'; // 윤년
} else {
topreyear = yyyy + '-' + mm + '-28'; // 평년
}
break;
default:
topreyear = yyyy + '-' + mm + '-30';
break;
}
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function pre_month(){ // 전월
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; // January is 0!
var yyyy = today.getFullYear();
if(dd < 10) {
dd = '0' + dd;
}
mm = mm - 1;
if(mm < 1) {
mm = '12';
yyyy = yyyy - 1; // 연도 조정
}
if(mm < 10) {
mm = '0' + mm;
}
var frompreyear = yyyy + '-' + mm + '-01';
var tmp = 0;
switch (Number(mm)) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
tmp = 31;
break;
case 2:
// 윤년 계산
if ((yyyy % 4 === 0 && yyyy % 100 !== 0) || (yyyy % 400 === 0)) {
tmp = 29; // 윤년
} else {
tmp = 28; // 평년
}
break;
case 4:
case 6:
case 9:
case 11:
tmp = 30;
break;
}
var topreyear = yyyy + '-' + mm + '-' + tmp;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function up_this_year(){ // 윗쪽 당해년도
// document.getElementById('search').value=null;
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
today = mm+'/'+dd+'/'+yyyy;
frompreyear = yyyy+'-01-01';
topreyear = yyyy+'-12-31';
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
fromdate1=frompreyear;
todate1=topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function prepre_month(){
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1;
var yyyy = today.getFullYear();
mm = mm - 2;
if(mm < 1) {
yyyy = yyyy - 1;
mm = mm + 12;
}
if(mm < 10) {
mm = '0' + mm;
}
var frompreyear = yyyy + '-' + mm + '-01';
var tmp = 0;
if(mm == '01' || mm == '03' || mm == '05' || mm == '07' || mm == '08' || mm == '10' || mm == '12') {
tmp = 31;
} else if(mm == '02') {
if((yyyy % 4 == 0 && yyyy % 100 != 0) || (yyyy % 400 == 0)) {
tmp = 29; // 윤년
} else {
tmp = 28; // 평년
}
} else {
tmp = 30;
}
var topreyear = yyyy + '-' + mm + '-' + tmp;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit();
}
function three_month_ago(){ // 석달전
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; // January is 0!
var yyyy = today.getFullYear();
if(dd < 10) {
dd = '0' + dd;
}
mm = mm - 3; // 세 달 전
// 월과 연도 조정
if(mm <= 0) {
mm = 12 + mm; // 월 계산
yyyy = yyyy - 1; // 연도 감소
}
if(mm < 10) {
mm = '0' + mm;
}
frompreyear = yyyy + '-' + mm + '-01';
var tmp = 0;
// 월의 마지막 날짜 계산
switch (Number(mm)) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
tmp = 31;
break;
case 2:
// 윤년 계산 추가
if ((yyyy % 4 === 0 && yyyy % 100 !== 0) || (yyyy % 400 === 0)) {
tmp = 29; // 윤년
} else {
tmp = 28; // 평년
}
break;
case 4:
case 6:
case 9:
case 11:
tmp = 30;
break;
}
topreyear = yyyy + '-' + mm + '-' + tmp;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function this_year(){ // 아래쪽 당해년도
// document.getElementById('search').value=null;
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
today = mm+'/'+dd+'/'+yyyy;
frompreyear = yyyy+'-01-01';
topreyear = yyyy+'-12-31';
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
fromdate1=frompreyear;
todate1=topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function up_this_month(){ // 윗쪽 당해월
// document.getElementById('search').value=null;
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
frompreyear = yyyy+'-'+mm+'-01';
switch (Number(mm)) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
tmp=31 ;
break;
case 2 :
tmp=28;
break;
case 4 :
case 6 :
case 9 :
case 11:
tmp=30;
break;
}
topreyear = yyyy + '-' + mm + '-' + tmp ;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function this_month(){ // 당해월
// document.getElementById('search').value=null;
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
frompreyear = yyyy+'-'+mm+'-01';
switch (Number(mm)) {
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
tmp=31 ;
break;
case 2 :
tmp=28;
break;
case 4 :
case 6 :
case 9 :
case 11:
tmp=30;
break;
}
topreyear = yyyy + '-' + mm + '-' + tmp ;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function From_tomorrow(){ // 익일 이후
var today = new Date();
var dd = today.getDate()+1; // 하루를 더해준다. 익일
var mm = today.getMonth()+1; //January is 0! 항상 1을 더해야 해당월을 구한다
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
frompreyear = yyyy+'-'+mm+'-'+dd;
topreyear = yyyy+'-12-31';
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function Fromthis_today(){ // 금일이후
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0! 항상 1을 더해야 해당월을 구한다
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
frompreyear = yyyy+'-'+mm+'-'+dd;
topreyear = yyyy+'-12-31';
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function up_this_today(){ // 윗쪽 날짜 입력란 금일
// document.getElementById('search').value=null;
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0! 항상 1을 더해야 해당월을 구한다
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
frompreyear = yyyy+'-'+mm+'-'+dd;
topreyear = yyyy+'-'+mm+'-'+dd;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function this_today(){ // 금일
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0! 항상 1을 더해야 해당월을 구한다
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd;
}
if(mm<10) {
mm='0'+mm;
}
frompreyear = yyyy+'-'+mm+'-'+dd;
topreyear = yyyy+'-'+mm+'-'+dd;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function yesterday() { // 전일
// 어제 날짜를 구함
var today = new Date();
today.setDate(today.getDate() - 1); // 날짜를 하루 줄임
var dd = today.getDate();
var mm = today.getMonth() + 1; // January is 0! 항상 1을 더해야 해당월을 구함
var yyyy = today.getFullYear();
if(dd < 10) {
dd = '0' + dd;
}
if(mm < 10) {
mm = '0' + mm;
}
var frompreyear = yyyy + '-' + mm + '-' + dd;
var topreyear = yyyy + '-' + mm + '-' + dd;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function dayBeforeYesterday() {
// 이틀 전 날짜를 구함
var today = new Date();
today.setDate(today.getDate() - 2); // 날짜를 이틀 줄임
var dd = today.getDate();
var mm = today.getMonth() + 1; // January is 0! 항상 1을 더해야 해당월을 구함
var yyyy = today.getFullYear();
if(dd < 10) {
dd = '0' + dd;
}
if(mm < 10) {
mm = '0' + mm;
}
var frompreyear = yyyy + '-' + mm + '-' + dd;
var topreyear = yyyy + '-' + mm + '-' + dd;
document.getElementById("fromdate").value = frompreyear;
document.getElementById("todate").value = topreyear;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function this_tomorrow() {
var today = new Date();
today.setDate(today.getDate() + 1); // 현재 날짜에 하루를 더함
var dd = today.getDate();
var mm = today.getMonth() + 1; // 월은 0부터 시작하므로 1을 더함
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd; // 일자가 10보다 작을 경우 앞에 0을 붙임
}
if (mm < 10) {
mm = '0' + mm; // 월이 10보다 작을 경우 앞에 0을 붙임
}
var formattedDate = yyyy + '-' + mm + '-' + dd; // yyyy-mm-dd 형식으로 날짜를 조합
document.getElementById("fromdate").value = formattedDate;
document.getElementById("todate").value = formattedDate;
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function formatDate(date) {
var dd = date.getDate();
var mm = date.getMonth() + 1; // January is 0!
var yyyy = date.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
return yyyy + '-' + mm + '-' + dd;
}
function this_week() {
var today = new Date();
var end = new Date(today);
end.setDate(today.getDate() + 6); // 7일 후의 날짜로 설정
document.getElementById("fromdate").value = formatDate(today);
document.getElementById("todate").value = formatDate(end);
document.getElementById("displaytext").value = '이번주';
document.getElementById('board_form').submit();
}
function next_week() {
var today = new Date();
var start = new Date(today);
var end = new Date(today);
start.setDate(today.getDate() + 7);
end.setDate(today.getDate() + 13); // 14일 후의 날짜로 설정
document.getElementById("fromdate").value = formatDate(start);
document.getElementById("todate").value = formatDate(end);
document.getElementById("displaytext").value = '2주간';
document.getElementById('board_form').submit();
}
function nextnext_week() {
var today = new Date();
var start = new Date(today);
var end = new Date(today);
start.setDate(today.getDate() + 14);
end.setDate(today.getDate() + 20); // 21일 후의 날짜로 설정
document.getElementById("fromdate").value = formatDate(start);
document.getElementById("todate").value = formatDate(end);
document.getElementById("displaytext").value = '3주간';
document.getElementById('board_form').submit();
}
function before_threeyear() {
var today = new Date();
var threeYearsAgo = new Date(today);
threeYearsAgo.setFullYear(today.getFullYear() - 3); // 3년 전의 연도로 설정
document.getElementById("fromdate").value = formatDate(threeYearsAgo);
document.getElementById("todate").value = formatDate(today);
document.getElementById("displaytext").value = '3년 전부터 현재까지';
document.getElementById('board_form').submit();
}
function process_list(){ // 접수일 출고일 라디오버튼 클릭시
document.getElementById('board_form').submit(); // form의 검색버튼 누른 효과
}
function comma(str) {
str = String(str);
return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
}
function uncomma(str) {
str = String(str);
tmp = Number(str.replace(/[^\d]+/g, ''));
return tmp;
}
// 현재 날짜가 속한 분기로 기본 설정
function setDefaultQuarter() {
let today = new Date();
let currentQuarter = Math.ceil((today.getMonth() + 1) / 3);
setQuarter(currentQuarter);
}
// 특정 분기 설정
function setQuarter(quarter) {
let year = new Date().getFullYear();
let startMonth = (quarter - 1) * 3 + 1;
let endMonth = startMonth + 2;
let fromDate = `${year}-${String(startMonth).padStart(2, '0')}-01`;
let toDate = `${year}-${String(endMonth).padStart(2, '0')}-${getLastDayOfMonth(year, endMonth)}`;
document.getElementById("fromdate").value = fromDate;
document.getElementById("todate").value = toDate;
document.getElementById('board_form').submit();
}
// 특정 반기 설정 (상반기, 하반기)
function setHalfYear(half) {
let year = new Date().getFullYear();
let startMonth = (half === 1) ? 1 : 7;
let endMonth = (half === 1) ? 6 : 12;
let fromDate = `${year}-${String(startMonth).padStart(2, '0')}-01`;
let toDate = `${year}-${String(endMonth).padStart(2, '0')}-${getLastDayOfMonth(year, endMonth)}`;
document.getElementById("fromdate").value = fromDate;
document.getElementById("todate").value = toDate;
document.getElementById('board_form').submit();
}
// 특정 분기 설정 (작년 기준)
function setLastYearQuarter(quarter) {
let lastYear = new Date().getFullYear() - 1;
let startMonth = (quarter - 1) * 3 + 1;
let endMonth = startMonth + 2;
let fromDate = `${lastYear}-${String(startMonth).padStart(2, '0')}-01`;
let toDate = `${lastYear}-${String(endMonth).padStart(2, '0')}-${getLastDayOfMonth(lastYear, endMonth)}`;
document.getElementById("fromdate").value = fromDate;
document.getElementById("todate").value = toDate;
document.getElementById('board_form').submit();
}
// 해당 월의 마지막 날 반환 (윤년 계산 포함)
function getLastDayOfMonth(year, month) {
return new Date(year, month, 0).getDate();
}