Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 구간합구하기
- 슈더코드
- MariaDB Query Log
- this와 this() 차이
- function test
- interrupted()
- 백준 11659번
- 구간합
- this
- Java
- select
- 백준 11660번
- 생성자
- jquery
- @AllArgsConstructor
- 상속과 참조
- ajax
- map()
- Bean LifecCycle
- InterruptException
- json
- 자바 람다식
- pseudo-code
- 백준
- 2차원배열 구간합
- 백준 1235번
- @NoArgsConstructor
- 마리아DB 쿼리 로그
- 합배열
- SQL
Archives
- Today
- Total
평범한 연구소
[Javascript] 날짜 계산 (오늘 날짜, 1개월 후, 1년 후, 이번주 화요일, 다음주 화요일) 본문
Pront/Javascript
[Javascript] 날짜 계산 (오늘 날짜, 1개월 후, 1년 후, 이번주 화요일, 다음주 화요일)
soyeonisgood 2022. 12. 25. 20:19특정 요일(화요일)마다 메일을 발송하는 기능을 구현 중이다.
오늘을 기준으로 돌아오는 화요일을 구해야한다.
Day(일)는 0이 일요일이다. (0:일 ~ 6:토)
오늘 날짜 구하기
new Date()를 이용하여 오늘 날짜를 구한다.
1개월 후 구하기
getMonth(): today의 월을 가져온다.
setMonth(): 가져온 월에 1을 더한다.
toISOString(): 날짜 형식을 YYYY-MM-DDTHH:mm:ss.sss 으로 변환한다. 년월일만 가져와 substring으로 분리하기 위해서!
12개월 후 구하기
1개월 후를 구한 것과 마찬가지로 12을 Month로 더해준다.
돌아오는 화요일 구하기
오늘이 일요일:0 이라면, 화요일은 2
오늘이 일요일이 아닌 다른 요일이라면 일주일(7)+화요일(2) 를 해주면 된다!
// 구독 기간 날짜 계산
function selectSubDate(selectSub) {
let today = new Date();
let endDate;
// 구독 시작일을 오늘 날짜로
startDate = new Date(today).toISOString().substring(0, 10);
$("input[name=dateSubStart]").attr("value", startDate);
if(selectSub === 'monthSub') {
// 1개월 후 날짜
endDate = new Date(today.setMonth(today.getMonth() + 1)).toISOString().substring(0, 10);
$("input[name=dateSubEnd]").attr("value", endDate);
$("input[name=price]").attr("value", 3000);
$("input[name=totalPrice]").attr("value", 3000);
} else if(selectSub === 'yearSub') {
// 12개월 후 날짜
endDate = new Date(today.setMonth(today.getMonth() + 12)).toISOString().substring(0, 10);
$("input[name=dateSubEnd]").attr("value", endDate);
$("input[name=price]").attr("value", 24000);
$("input[name=totalPrice]").attr("value", 24000);
}
// 첫 메일 발송일
let thisDate = new Date();
let dayToday = thisDate.getDay();
let firstMailDate;
if(dayToday === 2) { // 오늘이 화요일이면
let calcDate = thisDate.getDate() + 7;
firstMailDate = new Date(thisDate.setDate(calcDate)).toISOString().substring(0, 10);
} else {
let calcDate = thisDate.getDate() - dayToday + ((dayToday == 0 ? 2 : 9) + 0);
firstMailDate = new Date(thisDate.setDate(calcDate)).toISOString().substring(0, 10);
}
$("input[name=dateFirstMail]").attr("value", firstMailDate);
}
'Pront > Javascript' 카테고리의 다른 글
[JS|jQuery] 리뷰 별점 기능 구현하기 (0) | 2022.12.11 |
---|---|
[Javascript] JSTL(c:if, c:forEach...) 에서 continue 처리하기 (0) | 2022.11.20 |
[JSP|Javascript] JDBC DBCP 설정 (0) | 2022.11.05 |
[Javascript] 쿠키와 세션 (0) | 2022.10.08 |
[Javascript] 간단한 유효성 검사 (0) | 2022.10.05 |