[JS] 오늘 날짜 구하기, 어제 날짜 구하기 , new Date()사용하기, 이전 달의 마지막 날 구하기, 이전 년도의 마지막 날 구하기
2023. 3. 9. 13:34ㆍ공부/JS,CSS
- 오늘 날짜 구하기
날짜를 구하려면 Date 생성자를 사용해야 한다.
var today;
var date = new Date();
var year = date.getFullYear();
var month = ('0' + (date.getMonth()+1)).slice(-2);
var day = ('0' + (date.getDate()).slice(-2);
var today = year + "-" + month + "-" + day; // 2023-03-09
월/일은 10이하일 때는 '0'을 붙여주고, 그 외에는 그대로 써주면 된다.
만일 month가 10일 때, '0' + '10' = '010'인 상태에서 slice()를 사용하여 맨 뒤에서 2개만 뽑아온다.
slice(2)처럼 양수일 경우에는 앞에서부터 2개를 의미하고,
slice(-2)처럼 음수일 경우에는 뒤에서부터 2개를 의미한다.
따라서 여기서는 slice(-2)를 사용하여 '10'을 return한다.
day도 마찬가지이다.
day가 2인 경우, day는 '02'가 되므로 slice(-2)를 사용하여 뒤에서부터 2개인 '02'를 return한다.
- Date를 사용하여 어제 날짜 구하기
var today;
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate()-1;
if(day == 0){
month -= 1;
if(month == 0){
year -= 1;
month = 12;
}
if([1,3,5,7,8,10,12].includes(month)){
day = 31;
}else if(month == 2){
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
day = 29;
}
day = 28;
}else{
day = 30;
}
}
month = month >= 10 ? month : '0' + month;
day = day >= 10 ? day : '0' + day;
var yesterDay = year + "-" + month + "-" + day;
하루 전날을 구할 땐, 오늘 날짜가 1일인 경우엔 이전 달의 마지막 날로 넘어가는 점을 주의해야 한다.
day - 1 = 0인 날이 이전 달로 넘어가는 날이므로
month를 1 빼준다.
이때, 오늘 날짜가 01월 01인 경우엔 이전 년도 마지막 날짜로 넘어가기 때문에 if절로 체크해준다.
month - 1 = 0인 경우 year는 1을 빼주고, month = 12가 된다.
월마다 마지막 날짜가 다르므로 해당사항도 if절로 체크해준다.
month와 day가 10이하인 경우엔 '0'을 붙여줘야 한다.
첫번째에서 구한 방식과는 다르게 삼항연산자를 사용하여
10보다 작을 때 '0'을 붙여서 return하도록 한다.
'공부 > JS,CSS' 카테고리의 다른 글
[JS] jqGrid 동적으로 컬럼 숨기기, 동적으로 컬럼 보여주기 (0) | 2023.04.04 |
---|---|
[JS] 스크롤 맨 아래로 내리기 (0) | 2023.03.09 |
[JS] 아이디 유효성 검사, 영문자+숫자 필수, 길이 제한, 정규식 (0) | 2022.12.27 |
[JS] 전화번호 자동 하이픈(-) 처리, 정규식 사용 (0) | 2022.12.27 |
[JS] 비밀번호 유효성, 글자 수 제한, 정규식, search함수, test함수, 영문자 숫자 특수문자 2개 이상 혼합 비밀번호 (0) | 2022.12.27 |