반응형
서론
시작 날짜와 종료 날짜를 입력 받아 해당 범위 내의 모든 날짜 및 일자를 구할려고 합니다.
예를 들어 2024-04-12 ~ 2024-04-16의 값을 넣을 경우 12,13,14,15,16의 일자와
추가적으로 해당 값에 이벤트를 위해 필요한 2024-04-12,2024-04-13... 를 구하는 방식입니다.
해당 기능의 필요성은 예약이나 스케줄러 같은 달력 및 날짜를 활용할 때 많이 사용될 수 있기 때문에 알아보도록 하겠습니다.
함수구현
우선 작업 방식은 jQuery를 활용하여 진행이 되었으며, 기본적으로 jQuery는 세팅이 되어 있다는 과정하에 진행하겠습니다.
function createDateArrayWithJQuery(startDateStr, endDateStr) {
var startDate = new Date(startDateStr);
var endDate = new Date(endDateStr);
var resultArray = [];
var currentDate = startDate;
while (currentDate <= endDate) {
var dateStr = currentDate.toISOString().split('T')[0];
var dayValue = currentDate.getDate();
resultArray.push([dateStr, dayValue]); // 날짜와 일자를 배열로 저장
currentDate.setDate(currentDate.getDate() + 1); // 날짜를 하루 증가
}
return resultArray;
}
1. 함수를 구현 후 시작일과 종료일을 넣어줍니다.
2. 날짜를 비교하기 때문에 new Date 를 활용하여 2024-04-12 일 경우 new Date로 날짜를 파싱하여 Date 타입 객체로 변환시켜줍니다.
3. 우린 이부분들을 배열로 담아 사용할 것이며, 12 ~ 14일 경우 12,13,14 다수의 데이터가 필요하여 배열에 담아둡니다.
4. toISOString을 사용하여 Data 객체를 문자열로 변환시킨 뒤 yyyy-mm-ddT~ 부부에서 필요없는 구문을 제거하기 위해 split('T')를 활용해줍니다.
$(document).ready(function() {
var result = createDateArrayWithJQuery('2024-04-13', '2024-04-15');
result.forEach(function(item) {
$('#dateList').append('<p>Date: ' + item[0] + ', Day: ' + item[1] + '</p>');
});
});
해당 데이터를 사용하게 되면 결과는 0:[2024-04-13,13],1:[2024-04-14,14] 형식으로 출력되는걸 확인하실 수 있습니다.
어떤 형식으로 배열에 담을 것인지는 자유입니다.
반응형
'웹 공부' 카테고리의 다른 글
[jQuery] AJAX 응답 데이터 Body 및 Header안에 있는 데이터 호출 (0) | 2024.05.10 |
---|---|
[JS] 부드러운 스크롤 애니메이션 라이브러리 활용이 아닌 순수 사용자 작성방법으로 해결해보기 (0) | 2024.05.01 |
웹 페이지 접속 시 간혹 보이는 503 에러 (Service Unavailable)는 무엇인가? (0) | 2024.04.03 |
[Js] JavaScript로 날짜 간 차이 계산하기 - 당일부터 X박 Y일까지 표시하기 (0) | 2024.03.22 |
[OpenApi] 주소를 활용하여 위도, 경도값을 구하기 - kakaoApi 활용 (0) | 2024.03.20 |