Skip to content

Commit

Permalink
docs: 30장 정리
Browse files Browse the repository at this point in the history
  • Loading branch information
e6d1fe committed Jan 30, 2024
1 parent ffd437d commit 9ea1b5c
Showing 1 changed file with 142 additions and 0 deletions.
142 changes: 142 additions & 0 deletions docs/30_Date/나세현.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
## 30장 `Date`

표준 빌트인 객체인 `Date`는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수다.

### 📍 30.1: `Date` 생성자 함수

`Date` 생성자 함수로 생성한 `Date` 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다.
이 값은 **1970년 1월 1일 00:00:00(UTC)을 기점으로 `Date` 객체가 나타내는 날짜와 시간까지의 밀리초**를 나타낸다.
예를 들어, 1970년 1월 2일 0시를 나타내는 `Date` 객체는 내부적으로 정수값 86,400,000(24h _ 60m _ 60s \* 1000ms)을 갖는다.

`Date` 생성자 함수로 객체를 생성하는 방법은 다음과 같이 4가지가 있다.

#### 1. `new Date()`

인수 없이 `new` 연산자와 함께 호출하면 현재 날짜와 시간을 가지는 `Date` 객체를 반환한다.
`new` 연산자 없이 호출하면 `Date` 객체를 반환하지 않고 날짜와 시간 정보를 나타내는 문자열을 반환한다.

#### 2. `new Date(milliseconds)`

숫자 타입의 밀리초를 인수로 전달하면 1970년 1월 1일 00:00:00(UTC)을 기점으로 인수로 전달된 밀리초만큼 경과한 날짜와 시간을 나타내는 `Date` 객체를 반환한다.

#### 3. `new Date(dateString)`

인수로 날짜와 시간을 나타내는 문자열을 전달하면 지정된 날짜와 시간을 나타내는 `Date` 객체를 반환한다.
이때 인수로 전달한 문자열은 `Date.parse` 메서드에 의해 해석 가능한 형식이어야 한다.

#### 4. `new Date(year, month, [, day, hour, minute, second, millisecond])`

연, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 인수로 전달하면 지정된 날짜와 시간을 나타내는 `Date` 객체를 반환한다.
연, 월은 반드시 지정해야 하며 지정하지 않은 경우 1970년 1월 1일 00:00:00(UTC)을 나타내는 `Date` 객체를 반환한다.

### 📍 30.2: `Date` 메서드

#### 1. `Date.now()`

현재 시간까지 경과한 밀리초를 숫자로 반환한다.

#### 2. `Date.parse`

`dateString` 인수로 전달된 시간까지의 밀리초를 숫자로 반환한다.

#### 3. `Date.UTC`

#### 4. `Date.getFullYear`

`Date` 객체의 연도를 나타내는 정수를 반환한다.

#### 5. `Date.setFullYear`

#### 6. `Date.prototype.getMonth`

1월은 0, 12월은 11이다.

#### 7. `Date.prototype.setMonth`

#### 8. `Date.prototype.getDate`

`Date` 객체의 날짜(1 ~ 31)를 나타내는 정수를 반환한다.

#### 9. `Date.prototype.setDate`

#### 10. `Date.prototype.getDay`

`Date` 객체의 요일을 나타내는 정수를 반환한다. (일요일 0 ~ 토요일 6)

#### 11. `Date.prototype.getHours`

#### 12. `Date.prototype.setHours`

#### 13. `Date.prototype.getMinutes`

#### 14. `Date.prototype.setMinutes`

#### 15. `Date.prototype.getSeconds`

#### 16. `Date.prototype.setSeconds`

#### 17. `Date.prototype.getMilliseconds`

#### 18. `Date.prototype.setMilliseconds`

#### 19. `Date.prototype.getTime`

1970년 1월 1일 00:00:00(UTC)를 기점으로 `Date` 객체의 시간까지 경과된 밀리초를 반환한다.

#### 20. `Date.prototype.setTime`

#### 21. `Date.prototype.getTimezoneOffset`

UTC와 `Date` 객체에 지정된 locale 시간과의 차이를 분 단위로 반환한다.

```javascript
const today = new Date(); // today의 지정 locale은 KST

today.getTimezoneOffset() / 60; // -9
```

#### 22. `Date.prototype.toDateString`

사람이 읽을 수 있는 형식의 문자열로 `Date` 객체의 날짜를 반환한다.

```javascript
const today = new Date('2020/7/24/12:30');

today.toString(); // Fri Jul 24 2020 12:30:00 GMT+0900 (대한민국 표준시)
today.toDateString(); // Fri Jul 24 2020
```

#### 23. `Date.prototype.toTimeString`

사람이 읽을 수 있는 형식의 문자열로 `Date` 객체의 시간을 반환한다.

```javascript
const today = new Date('2020/7/24/12:30');

today.toTimeString(); // 12:30:00 GMT+0900 (대한민국 표준시)
```

#### 24. `Date.prototype.toISOString`

ISO 8601 형식으로 `Date` 객체의 날짜와 시간을 표현한 문자열을 반환한다.

```javascript
const today = new Date('2020/7/24/12:30');

today.toISOString(); // 2020-07-24T03:30:00.000Z
```

#### 25. `Date.prototype.toLocaleString`

인수로 전달한 locale을 기준으로 `Date` 객체의 날짜와 시간을 표현한 문자열을 반환한다.

```javascript
const today = new Date('2020/7/24/12:30');

today.toLocaleString('ko-KR'); // 2020. 7. 24. 오후 12:30:00
today.toLocaleString('en-US'); // 7/24/2020, 12:30:00 PM
```

#### 26. `Date.prototype.toLocaleTimeString`

인수로 전달한 locale을 기준으로 `Date` 객체의 시간을 표현한 문자열을 반환한다.

0 comments on commit 9ea1b5c

Please sign in to comment.