ν‹°μŠ€ν† λ¦¬ λ·°

ν‘œμ€€ 빌트인 객체인 DateλŠ” λ‚ μ§œμ™€ μ‹œκ°„(μ—°, μ›”, 일, μ‹œ, λΆ„, 초, λ°€λ¦¬μ΄ˆ)을 μœ„ν•œ λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•˜λŠ” 빌트인 κ°μ²΄μ΄λ©΄μ„œ μƒμ„±μž ν•¨μˆ˜μž…λ‹ˆλ‹€. ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ€ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œκ°€ μ‹€ν–‰λœ μ‹œμŠ€ν…œμ˜ μ‹œκ³„μ— μ˜ν•΄ κ²°μ •λ©λ‹ˆλ‹€.

  • UTC(ν˜‘μ • μ„Έκ³„μ‹œ) : ꡭ제 ν‘œμ€€μ‹œλ‘œ GMT(κ·Έλ¦¬λ‹ˆμΉ˜ ν‰κ· μ‹œ)둜 λΆˆλ¦¬κΈ°λ„ 함
  • KST(ν•œκ΅­ ν‘œμ€€μ‹œ) : UTC에 9μ‹œκ°„μ„ λ”ν•œ μ‹œκ°„μœΌλ‘œ KSTλŠ” UTC보닀 9μ‹œκ°„μ΄ 빠름

Data μƒμ„±μž ν•¨μˆ˜

Date μƒμ„±μž ν•¨μˆ˜λ‘œ μƒμ„±ν•œ Data κ°μ²΄λŠ” λ‚΄λΆ€μ μœΌλ‘œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ κ°€μ§‘λ‹ˆλ‹€. 이 값은 1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 Date 객체가 λ‚˜νƒ€λ‚΄λŠ” λ‚ μ§œμ™€ μ‹œκ°„κΉŒμ§€μ˜ λ°€λ¦¬μ΄ˆλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

  • 1970λ…„ 1μ›” 1일 0μ‹œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” Data κ°μ²΄λŠ” λ‚΄λΆ€μ μœΌλ‘œ μ •μˆ˜κ°’ 0을 가짐
  • 1970λ…„ 1μ›” 2일 0μ‹œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” Data κ°μ²΄λŠ” λ‚΄λΆ€μ €κΈλ‘œ μ •μˆ˜κ°’ 86,400,000(24h * 60m * 60s * 1000ms)을 가짐

λ§Œμ•½ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ΄ μ•„λ‹Œ λ‹€λ₯Έ λ‚ μ§œμ™€ μ‹œκ°„μ„ 닀루고 싢은 경우 Date μƒμ„±μž ν•¨μˆ˜μ— λͺ…μ‹œμ μœΌλ‘œ ν•΄λ‹Ή λ‚ μ§œμ™€ μ‹œκ°„ 정보λ₯Ό 인수둜 μ§€μ •ν•©λ‹ˆλ‹€.

 

Date μƒμ„±μž ν•¨μˆ˜λ‘œ 객체λ₯Ό μƒμ„±ν•˜λŠ” 방법은 λ‹€μŒκ³Ό 같이 4가지가 μžˆμŠ΅λ‹ˆλ‹€.

new Date()

Date μƒμ„±μž ν•¨μˆ˜λ₯Ό 인수 없이 new μ—°μ‚°μžμ™€ ν•¨κ»˜ ν˜ΈμΆœν•˜λ©΄ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ§€λŠ” Date 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

// new μ—°μ‚°μžμ™€ 호좜
new Date(); // -> Tue Aug 02 2022 21:45:02 GMT+0900 (ν•œκ΅­ ν‘œμ€€μ‹œ)

// new μ—°μ‚°μž 없이 ν˜ΈμΆœν•˜λ©΄ Date 객체λ₯Ό λ°˜ν™˜X
Date(); // -> "Tue Aug 02 2022 21:45:13 GMT+0900 (ν•œκ΅­ ν‘œμ€€μ‹œ)"
  • Date κ°μ²΄λŠ” λ‚΄λΆ€μ μœΌλ‘œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ κ°–μ§€λ§Œ Date 객체λ₯Ό μ½˜μ†”μ— 좜λ ₯ν•˜λ©΄ 기본적으둜 λ‚ μ§œμ™€ μ‹œκ°„ 정보λ₯Ό 좜λ ₯
  • new μ—°μ‚°μž 없이 ν˜ΈμΆœν•˜λ©΄ Date 객체λ₯Ό λ°˜ν™˜ν•˜μ§€ μ•Šκ³  λ‚ μ§œμ™€ μ‹œκ°„ μ •λ³΄λ§Œ λ‚˜νƒ€λ‚΄λŠ” λ¬Έμžμ—΄μ„ λ°˜ν™˜

 

new Data(milliseconds)

Date μƒμ„±μž ν•¨μˆ˜μ— 숫자 νƒ€μž…μ˜ λ°€λ¦¬μ΄ˆλ₯Ό 인수둜 μ „λ‹¬ν•˜λ©΄ 1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 인수둜 μ „λ‹¬λœ λ°€λ¦¬μ΄ˆλ§ŒνΌ κ²½κ³Όν•œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” Date 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

// ν•œκ΅­ ν‘œμ€€μ‹œ KSTλŠ” ν˜‘μ • μ„Έκ³„μ‹œ UTC에 9μ‹œκ°„μ„ λ”ν•œ μ‹œκ°„μ΄λ‹€.
new Date(0); // -> Thu Jan 01 1970 09:00:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

/*
86400000msλŠ” 1dayλ₯Ό μ˜λ―Έν•œλ‹€.
1s = 1,000ms
1m = 60s * 1,000ms = 60,000ms
1h = 60m * 60,000ms = 3,600,000ms
1d = 24h * 3,600,000ms = 86,400,000ms
*/
new Date(86400000); // -> Fri Jan 02 1970 09:00:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

 

new Date(dateString)

Date μƒμ„±μž ν•¨μˆ˜μ— λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” λ¬Έμžμ—΄μ„ 인수둜 μ „λ‹¬ν•˜λ©΄ μ§€μ •λœ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” Date 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. μ΄λ•Œ 인수둜 μ „λ‹¬ν•œ λ¬Έμžμ—΄μ€ Date.parse λ©”μ„œλ“œμ— μ˜ν•΄ 해석 κ°€λŠ₯ν•œ ν˜•μ‹μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.

 

new Date('May 26, 2020 10:00:00');
// -> Tue May 26 2020 10:00:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

new Date('2020/03/26/10:00:00');
// -> Thu Mar 26 2020 10:00:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

 

new Date(year, month[,day,hour,minute,second,millisecond])

Date μƒμ„±μž ν•¨μˆ˜μ— μ—°, μ›”, 일, μ‹œ, λΆ„, 초, λ°€λ¦¬μ΄ˆλ₯Ό μ˜λ―Έν•˜λŠ” 숫자λ₯Ό 인수둜 μ „λ‹¬ν•˜λ©΄ μ§€μ •λœ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” Date 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. μ΄λ•Œ μ—°, 월은 λ°˜λ“œμ‹œ 지정해야 ν•˜κ³  μ§€μ •ν•˜μ§€ μ•Šμ€ μ˜΅μ…˜ μ •λ³΄λŠ” 0λ˜λŠ” 1둜 μ΄ˆκΈ°ν™”λ©λ‹ˆλ‹€.

 

*μ—°, 월을 μ§€μ •ν•˜μ§€ μ•ŠλŠ” 경우 1970λ…„ 1μ›” 1일 00:00:00(UTC)을 λ‚˜νƒ€λ‚΄λŠ” Date 객체λ₯Ό λ°˜ν™˜

 

인수 λ‚΄μš©
year 연을 λ‚˜νƒ€λ‚΄λŠ” 1900λ…„ μ΄ν›„μ˜ μ •μˆ˜. 0~99λŠ” 1900~1999둜 처리됨
month 월을 νƒ€λ‚˜λ‚΄λŠ” 0~11κΉŒμ§€μ˜ μ •μˆ˜ (0λΆ€ν„° μ‹œμž‘ν•΄μ„œ 0이 1μ›”μž„)
day 일을 λ‚˜νƒ€λ‚΄λŠ” 1~31κΉŒμ§€μ˜ μ •μˆ˜
hour μ‹œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 0~23κΉŒμ§€μ˜ μ •μˆ˜
minute 뢄을 λ‚˜νƒ€λ‚΄λŠ” 0~59κΉŒμ§€μ˜ μ •μˆ˜
second 초λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 0~59κΉŒμ§€μ˜ μ •μˆ˜
millisecond λ°€λ¦¬μ΄ˆλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 0~999κΉŒμ§€μ˜ μ •μˆ˜

 

// 월을 λ‚˜νƒ€λ‚΄λŠ” 2λŠ” 3월을 μ˜λ―Έν•œλ‹€. 2020/3/1/00:00:00:00
new Date(2020, 2);
// -> Sun Mar 01 2020 00:00:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

// 월을 λ‚˜νƒ€λ‚΄λŠ” 2λŠ” 3월을 μ˜λ―Έν•œλ‹€. 2020/3/26/10:00:00:00
new Date(2020, 2, 26, 10, 00, 00, 0);
// -> Thu Mar 26 2020 10:00:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

// λ‹€μŒμ²˜λŸΌ ν‘œν˜„ν•˜λ©΄ 가독성이 훨씬 μ’‹λ‹€.
new Date('2020/3/26/10:00:00:00');
// -> Thu Mar 26 2020 10:00:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

 


Date λ©”μ„œλ“œ

Date.now

1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 ν˜„μž¬ μ‹œκ°„κΉŒμ§€ κ²½κ³Όν•œ λ°€λ¦¬μ΄ˆλ₯Ό 숫자둜 λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

const now = Date.now(); // -> 1659445468304

// Date μƒμ„±μž ν•¨μˆ˜μ— 숫자 νƒ€μž…μ˜ λ°€λ¦¬μ΄ˆλ₯Ό 인수둜 μ „λ‹¬ν•˜λ©΄ 1970λ…„ 1μ›” 1일 00:00:00(UTC)을
// 기점으둜 인수둜 μ „λ‹¬λœ λ°€λ¦¬μ΄ˆλ§ŒνΌ κ²½κ³Όν•œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” Date 객체λ₯Ό λ°˜ν™˜ν•œλ‹€.
new Date(now); // -> Tue Aug 02 2022 22:04:28 GMT+0900 (ν•œκ΅­ ν‘œμ€€μ‹œ)

 

Date.parse

1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 인수둜 μ „λ‹¬λœ 지정 μ‹œκ°„(new Date(dateString)의 μΈμˆ˜μ™€ λ™μΌν•œ ν˜•μ‹)κΉŒμ§€μ˜ λ°€λ¦¬μ΄ˆλ₯Ό 숫자둜 λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

// UTC
Date.parse('Jan 2, 1970 00:00:00 UTC'); // -> 86400000

// KST
Date.parse('Jan 2, 1970 09:00:00'); // -> 86400000

// KST
Date.parse('1970/01/02/09:00:00');  // -> 86400000

 

Date.UTC

1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 인수둜 μ „λ‹¬λœ 지정 μ‹œκ°„κΉŒμ§€μ˜ λ°€λ¦¬μ΄ˆλ₯Ό 숫자둜 λ°˜ν™˜ν•©λ‹ˆλ‹€. Date.UTC λ©”μ„œλ“œλŠ” new Date(year, month[,day,hour,minute,second,millisecond]) μ™€ 같은 ν˜•μ‹μ˜ 인수λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

Date.UTC(1970, 0, 2); // -> 86400000
Date.UTC('1970/1/2'); // -> NaN
  • Date.UTC λ©”μ„œλ“œμ˜ μΈμˆ˜λŠ” 둜콜 νƒ€μž„μ΄ μ•„λ‹Œ UTC둜 인식됨
  • monthλŠ” 월을 μ˜λ―Έν•˜λŠ” 0~11κΉŒμ§€μ˜ μ •μˆ˜λ‘œ 0λΆ€ν„° μ‹œμž‘ν•˜λŠ” 것을 μ£Όμ˜ν•΄μ•Ό 함

 

Date.prototype.getFullYear

Date 객체의 연도λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

new Date('2020/07/24').getFullYear(); // -> 2020

 

Date.prototype.setFullYear

Date 객체에 연도λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. 연도 이외에 μ˜΅μ…˜μœΌλ‘œ μ›”, 일도 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

const today = new Date();

// 년도 지정
today.setFullYear(2000);
today.getFullYear(); // -> 2000

// 년도/μ›”/일 지정
today.setFullYear(1900, 0, 1);
today.getFullYear(); // -> 1900

 

Date.prototype.getFullMonth

Date 객체의 월을 λ‚˜νƒ€λ‚΄λŠ” 0~11의 μ •μˆ˜(1월은 0, 12월은 11)λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

new Date('2020/07/24').getMonth(); // -> 6

 

Date.prototype.setFullMonth

Date 객체에 월을 λ‚˜νƒ€λ‚΄λŠ” 0~11의 μ •μˆ˜(1월은 0, 12월은 11)λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. μ›” 이외에 μ˜΅μ…˜μœΌλ‘œ 일도 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

const today = new Date();

// μ›” 지정
today.setMonth(0); // 1μ›”
today.getMonth(); // -> 0

// μ›”/일 지정
today.setMonth(11, 1); // 12μ›” 1일
today.getMonth(); // -> 11

 

Date.prototype.getDate

Date 객체의 λ‚ μ§œ(1~31)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

new Date('2020/07/24').getDate(); // -> 24

 

Date.prototype.setDate

Date 객체에 λ‚ μ§œ(1~31)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

 

const today = new Date();

// λ‚ μ§œ 지정
today.setDate(1);
today.getDate(); // -> 1

 

Date.prototype.getDay

Date 객체의 μš”μΌ(0~6)을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

μš”μΌ λ°˜ν™˜κ°’
μΌμš”μΌ 0
μ›”μš”μΌ 1
ν™”μš”μΌ 2
μˆ˜μš”μΌ 3
λͺ©μš”일 4
κΈˆμš”μΌ 5
ν† μš”μΌ 6

 

new Date('2020/07/24').getDay(); // -> 5

 

Date.prototype.getHours

Date 객체의 μ‹œκ°„(0~23)을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

new Date('2020/07/24/12:00').getHours(); // -> 12

 

Date.prototype.setHours

Date 객체에 μ‹œκ°„(0~23)을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

 

const today = new Date();

// μ‹œκ°„ 지정
today.setHours(7);
today.getHours(); // -> 7

// μ‹œκ°„/λΆ„/초/λ°€λ¦¬μ΄ˆ 지정
today.setHours(0, 0, 0, 0); // 00:00:00:00
today.getHours(); // -> 0

 

Date.prototype.getMinutes

Date 객체의 λΆ„(0~59)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

new Date('2020/07/24/12:30').getMinutes(); // -> 30

 

Date.prototype.setMinutes

Date 객체에 λΆ„(0~59)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. λΆ„ μ΄μ™Έμ˜ μ˜΅μ…˜μœΌλ‘œ 초, λ°€λ¦¬μ΄ˆλ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

const today = new Date();

// λΆ„ 지정
today.setMinutes(50);
today.getMinutes(); // -> 50

// λΆ„/초/λ°€λ¦¬μ΄ˆ 지정
today.setMinutes(5, 10, 999); // HH:05:10:999
today.getMinutes(); // -> 5

 

Date.prototype.getSeconds

Date 객체의 초(0~59)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

new Date('2020/07/24/12:30:10').getSeconds(); // -> 10

 

Date.prototype.setSeconds

Date 객체에 초(0~59)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. 초 μ΄μ™Έμ˜ μ˜΅μ…˜μœΌλ‘œ λ°€λ¦¬μ΄ˆλ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

const today = new Date();

// 초 지정
today.setSeconds(30);
today.getSeconds(); // -> 30

// 초/λ°€λ¦¬μ΄ˆ 지정
today.setSeconds(10, 0); // HH:MM:10:000
today.getSeconds(); // -> 10

 

Date.prototype.getMilliseconds

Date 객체의 λ°€λ¦¬μ΄ˆ(0~999)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

new Date('2020/07/24/12:30:10:150').getMilliseconds(); // -> 150

 

Date.prototype.setMilliseconds

Date 객체에 λ°€λ¦¬μ΄ˆ(0~999)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

 

const today = new Date();

// λ°€λ¦¬μ΄ˆ 지정
today.setMilliseconds(123);
today.getMilliseconds(); // -> 123

 

Date.prototype.getTime

1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 Date 객체의 μ‹œκ°„κΉŒμ§€ 경과된 λ°€λ¦¬μ΄ˆλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

new Date('2020/07/24/12:30').getTime(); // -> 1595561400000

 

Date.prototype.setTime

Date 객체에 1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 경과된 λ°€λ¦¬μ΄ˆλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

 

const today = new Date();

// 1970λ…„ 1μ›” 1일 00:00:00(UTC)λ₯Ό 기점으둜 경과된 λ°€λ¦¬μ΄ˆ μ„€μ •
today.setTime(86400000); // 86400000λŠ” 1dayλ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
console.log(today); // -> Fri Jan 02 1970 09:00:00 GMT+0900 (ν•œκ΅­ ν‘œμ€€μ‹œ)

 

Date.prototype.getTimezoneOffset

UTC와 Date 객체에 μ§€μ •λœ 둜캘(locale) μ‹œκ°„κ³Όμ˜ 차이λ₯Ό λΆ„ λ‹¨μœ„λ‘œ λ°˜ν™˜ν•©λ‹ˆλ‹€. KSTλŠ” UTC에 9μ‹œκ°„μ„ λ”ν•œ μ‹œκ°„μž„μœΌλ‘œ UTC = KST - 9hμž…λ‹ˆλ‹€.

 

const today = new Date(); // today의 지정 λ‘œμΊ˜μ€ KSTλ‹€.

//UTC와 today의 지정 둜캘 KSTμ™€μ˜ μ°¨μ΄λŠ” -9μ‹œκ°„μ΄λ‹€.
today.getTimezoneOffset() / 60; // -9

 

Date.prototype.toDateString

μ‚¬λžŒμ΄ 읽을 수 μžˆλŠ” ν˜•μ‹μ˜ λ¬Έμžμ—΄λ‘œ Date 객체의 λ‚ μ§œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

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

 

Date.prototype.toTimeString

μ‚¬λžŒμ΄ 읽을 수 μžˆλŠ” ν˜•μ‹μœΌλ‘œ Date 객체의 μ‹œκ°„μ„ ν‘œν˜„ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

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

today.toString();     // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)
today.toTimeString(); // -> 12:30:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

 

Date.prototype.toISOString

ISO 8601 ν˜•μ‹μœΌλ‘œ Date 객체의 λ‚ μ§œμ™€ μ‹œκ°„μ„ ν‘œν˜„ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

 

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

today.toString();    // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)
today.toISOString(); // -> 2020-07-24T03:30:00.000Z

today.toISOString().slice(0, 10); // -> 2020-07-24
today.toISOString().slice(0, 10).replace(/-/g, ''); // -> 20200724

 

Date.prototype.toLocaleString

인수둜 μ „λ‹¬ν•œ λ‘œμΊ˜μ„ κΈ°μ€€μœΌλ‘œ Date 객체의 λ‚ μ§œμ™€ μ‹œκ°„μ„ ν‘œν˜„ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. 인수λ₯Ό μƒλž΅ν•œ 경우 λΈŒλΌμš°μ €κ°€ λ™μž‘ 쀑인 μ‹œμŠ€ν…œμ˜ λ‘œμΊ˜μ„ μ μš©ν•©λ‹ˆλ‹€.

 

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

today.toString(); // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)
today.toLocaleString(); // -> 2020. 7. 24. μ˜€ν›„ 12:30:00
today.toLocaleString('ko-KR'); // -> 2020. 7. 24. μ˜€ν›„ 12:30:00
today.toLocaleString('en-US'); // -> 7/24/2020, 12:30:00 PM
today.toLocaleString('ja-JP'); // -> 2020/7/24 12:30:00

 

Date.prototype.toLocaleTimeString

인수둜 μ „λ‹¬ν•œ λ‘œμΊ˜μ„ κΈ°μ€€μœΌλ‘œ Date 객체의 μ‹œκ°„μ„ ν‘œν˜„ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. 인수λ₯Ό μƒλž΅ν•œ 경우 λΈŒλΌμš°μ €κ°€ λ™μž‘ 쀑인 μ‹œμŠ€ν…œμ˜ λ‘œμΊ˜μ„ μ μš©ν•©λ‹ˆλ‹€.

 

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

today.toString(); // -> Fri Jul 24 2020 12:30:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)
today.toLocaleTimeString(); // -> μ˜€ν›„ 12:30:00
today.toLocaleTimeString('ko-KR'); // -> μ˜€ν›„ 12:30:00
today.toLocaleTimeString('en-US'); // -> 12:30:00 PM
today.toLocaleTimeString('ja-JP'); // -> 12:30:00

Dateλ₯Ό ν™œμš©ν•œ μ‹œκ³„ 예제

λ‹€μŒ μ˜ˆμ œλŠ” ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ 초 λ‹¨μœ„λ‘œ 반볡 좜λ ₯ν•©λ‹ˆλ‹€.

 

(function printNow() {
  const today = new Date();

  const dayNames = [
    '(μΌμš”μΌ)',
    '(μ›”μš”μΌ)',
    '(ν™”μš”μΌ)',
    '(μˆ˜μš”μΌ)',
    '(λͺ©μš”일)',
    '(κΈˆμš”μΌ)',
    '(ν† μš”μΌ)'
  ];
  // getDay λ©”μ„œλ“œλŠ” ν•΄λ‹Ή μš”μΌ(0 ~ 6)을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.
  const day = dayNames[today.getDay()];

  const year = today.getFullYear();
  const month = today.getMonth() + 1;
  const date = today.getDate();
  let hour = today.getHours();
  let minute = today.getMinutes();
  let second = today.getSeconds();
  const ampm = hour >= 12 ? 'PM' : 'AM';

  // 12μ‹œκ°„μ œλ‘œ λ³€κ²½
  hour %= 12;
  hour = hour || 12; // hourκ°€ 0이면 12λ₯Ό μž¬ν• λ‹Ή

  // 10미만인 λΆ„κ³Ό 초λ₯Ό 2자리둜 λ³€κ²½
  minute = minute < 10 ? '0' + minute : minute;
  second = second < 10 ? '0' + second : second;

  const now = `${year}λ…„ ${month}μ›” ${date}일 ${day} ${hour}:${minute}:${second} ${ampm}`;

  console.log(now);

  // 1μ΄ˆλ§ˆλ‹€ printNow ν•¨μˆ˜λ₯Ό μž¬κ·€ ν˜ΈμΆœν•œλ‹€. 41.2.1절 "setTimeout / clearTimeout" μ°Έκ³ 
  setTimeout(printNow, 1000);
}());

[좜처] λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ Deep Dive

https://wikibook.co.kr/mjs/

 

λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ Deep Dive: μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ κΈ°λ³Έ κ°œλ…κ³Ό λ™μž‘ 원리

269개의 κ·Έλ¦Όκ³Ό 원리λ₯Ό νŒŒν—€μΉ˜λŠ” μ„€λͺ…μœΌλ‘œ ‘μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ κΈ°λ³Έ κ°œλ…κ³Ό λ™μž‘ 원리’λ₯Ό μ΄ν•΄ν•˜μž! μ›ΉνŽ˜μ΄μ§€μ˜ λ‹¨μˆœν•œ 보쑰 κΈ°λŠ₯을 μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ μ œν•œμ μΈ μš©λ„λ‘œ νƒœμ–΄λ‚œ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 과도

wikibook.co.kr