두 개의 날짜를 넣어 두 날짜의 차이를 구하는 함수 입니다.
숫자 아닌것에 대한 예외처리는 따로 하지 않았습니다.
커스터마이징하여 사용하여도 좋습니다. ^^
/* 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; }
'프론트앤드 이야기 > JavaScript & JQuery' 카테고리의 다른 글
[Javascript] 날짜 빼기 (0) | 2019.03.08 |
---|---|
[Jquery] 체크박스 선택된 값 배열넣기 (0) | 2019.01.29 |
[Jquery] Jquery 항상 최신버젼 받아오기 (0) | 2018.12.04 |
[Javascript] javascript 클릭 target id 호출 (0) | 2018.10.29 |
[Jquery] Jquery 2 이후 버전 체크박스 선택 checkbox (0) | 2018.10.29 |
댓글