프론트앤드 이야기/JavaScript & JQuery

[JavaScript] 두 개의 비교 날짜를 넣어 두 날짜의 차이 구하기

한희성 2018. 12. 6.
반응형

두 개의 날짜를 넣어 두 날짜의 차이를 구하는 함수 입니다.


숫자 아닌것에 대한 예외처리는 따로 하지 않았습니다.


커스터마이징하여 사용하여도 좋습니다. ^^


/* 2018. 12. 06 hanheeseong 시작 날짜와 종료 날짜를 넣어서 두 날짜의 차이를 구한다. parameter : type, startDate, endDate type : y, m, d, h, m, s startDate : 시작 날짜 2018-00-00 endDate : 끝 날짜 2018-00-00 */

function dateDifference(type, startDate, endDate){ var start = yearParse(startDate); var end = yearParse(endDate); var difference = parseInt(end.getTime()-start.getTime()); switch (type.toLowerCase()){ case "y": case "year": difference = Math.ceil(difference / 1000 / 60 / 60 / 24 / 365); break; case "m": case "month": //'2018-12-06','2018-09-26' 두달이 넘더라도 차이는 3으로 간주

var differenceYear = start.getYear() - end.getYear(); var differenceMonth = start.getMonth() - end.getMonth(); var differenceDay = start.getDate() - end.getDate(); difference = (differenceYear * 12 + differenceMonth) + ((differenceDay > 0) ? 1 : 0); break; case "d": case "day": difference = Math.ceil(difference / 1000 / 60 / 60 / 24); break; case "h": case "hour": difference = Math.ceil(difference / 1000 / 60 / 60); break; case "m": case "minute": difference = Math.ceil(difference / 1000 / 60); break; case "s": case "second": difference = Math.ceil(difference / 1000); break; } return difference; }; function dateParse(source){ var year = ""; var month = ""; var day = ""; var hours = "00"; var minute = "00"; var second = "00"; var result = new Date(); if (source.length == 8){ year = source.substring(0,4); month = source.substring(4,6); day = source.substring(6,8); } if (source.length == 10){ year = source.split("-")[0]; month = source.split("-")[1]; day = source.split("-")[2]; } if (source.length >= 16){ year = source.split(" ")[0].split("-")[0]; month = source.split(" ")[0].split("-")[1]; day = source.split(" ")[0].split("-")[2]; hours = source.split(" ")[1].split(":")[0]; minute = source.split(" ")[1].split(":")[1]; } if (source.length >= 19){ year = source.split(" ")[0].split("-")[0]; month = source.split(" ")[0].split("-")[1]; day = source.split(" ")[0].split("-")[2]; hours = source.split(" ")[1].split(":")[0]; minute = source.split(" ")[1].split(":")[1]; second = source.split(" ")[1].split(":")[2]; } result = new Date(year, month - 1, day, hours, minute, second) return result; }


반응형

댓글

💲 추천 글