모던자바스크립트, Date 객체

Edwin·2023년 2월 18일
0
post-thumbnail
  • 본 포스트은 모던자바스크립트 Deep Dive 를 기반으로 정리했습니다.
  • 본 포스트는 다크모드에 최적화 되어 있습니다.

오늘의 시간을 구해보자!!

Chapter. 30 Date 객체

자바스크립트에는 연/월/일/시/분/초/밀리초를 구할 수 있는 빌트인 객체인 Date가 있다. 생성자 함수로 작동되는 메서드이면서 객체인 Date 객체는 단순하게 아래의 방법으로 생성할 수 있다.

한국에서 해당 Date 객체를 생성하면 다음과 같은 기호를 볼 수 있는데, GMT는 그리니치 평균시를 말하며, 한국은 영국에서부터 9시간 빠르기 때문에 +0900이 덧붙여졌다.

  1. 해당요일
  2. 해당월
  3. 해당일
  4. 해당연도
  5. 해당시간이 순차적으로 기록된다.

01) Date 객체 생성

new Date()

Date 객체를 생성하는 방법은 위의 코드를 선언함으로 가능하다. 보듯이 new 가 선행된다. 즉 Date은 이미 만들어진 생성자함수로부터 만들어진 새로운 객체인 것이다.

  • 아래의 이미지는(사파리 기준) 해당 결과를 HTML에서 실행한 내용이다.
  • 반면에(사파리 기준) 아래의 이미지는 콘솔에서 내용을 실행했을 때이다.

약간의 내용의 차이가 있다.

02) 구체적인 날짜검색

new Date(year,month,day,hour....)

//입렵방법(1)
new Date(2022,1,19,10:00,00,0)

//입렵방법(2)
new Date(2022/1/19/10:00:00:00)

입력한 내용에 따라서 계산이 가능하다. 00:00:00 시분초까지도 구체적인 지정이 가능하다.

03) 세분화 get메서드

04) 컴퓨터달력은 0월부터 11월?

자세히 보면 신경써야 할 부분이 있다. 바로 month(월)이다. 이유는 모르겠지만, 컴퓨터의 달력계산은 0~11월까지이다. 우리가 아는 1~12월까지와 다르다. 그러기에 우리의 달력으로 변환을 하려면 +1을 해해주어야 한다.

만약 과거의 날짜를 직접 입력한다면, 우리가 아는 월-1을 해주어야 바른 계산이 이뤄진다. 이 문제 때문에 뭐지 하면서 30분은 허덕인 것 같다. -1을 해주지 않으면 달력으로써의 의미를 상실한다. 세부적인 요일 계산에 어려움을 느낄 것이다.

또한 월과 일의 경우 1자리인 숫자를 0으로 바꿔주기 위해서 코트펜의 코드에서 볼 수 있듯이 약간의 정보를 가공해주었다.

프로그래머서, 과거 날짜 구하기

function solution(a, b) {
    let today = new Date(2016, a-1,b)
    let day = today.getDay()
    let dayTxt = ["SUN","MON","TUE","WED","THU","FRI","SAT"]
    return dayTxt[day]
}
  • 시간세분화 : Date.prototype.getHours()
  • 분세분화 : Date.prototype.getMnitues()
  • 초세분화 : Date.prototype.getSeconds()

05) 24시간, 12시간제로 어떻게?

let fullYear12 = today.getHours()%12 || 12

버티컬바(||)가 여기서도 사용되었다. 찾아보니 버티컬바(왼편)이 만약 0이면 버티컬파(오른편)으로 초기값을 설정해주는 것이 위에서 기록된 코드이다.

06) D-day 계산기 만들기

profile
신학전공자의 개발자 도전기!!

0개의 댓글