30μž₯ Date

ν‘œμ€€ 빌트인 DateλŠ” λ‚ μ§œμ™€ μ‹œκ°„ κ΄€λ ¨ λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•˜λŠ” 빌트인 객체 μ΄λ©΄μ„œ μƒμ„±μž ν•¨μˆ˜ λ‹€.


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

Date λŠ” μƒμ„±μž ν•¨μˆ˜λ‹€. Date μƒμ„±μž ν•¨μˆ˜λ‘œ μƒμ„±ν•œ Date κ°μ²΄λŠ” 기본적으둜 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ κ°€μ§„λ‹€. ν˜„μž¬κ°€ μ•„λ‹Œ νŠΉμ • μ‹œκ°„μ„ 닀루고 μ‹Άλ‹€λ©΄ λͺ…μ‹œμ μœΌλ‘œ ν•΄λ‹Ή 정보λ₯Ό 인수둜 μ§€μ •ν•œλ‹€.

30.1.1 new Date()

인수 없이 new μ—°μ‚°μžμ™€ ν˜ΈμΆœν•˜λ©΄ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°–λŠ” Date 객체λ₯Ό λ°˜ν™˜ν•œλ‹€. λ‚΄λΆ€μ μœΌλ‘œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ κ°–μ§€λ§Œ μ½˜μ†”μ— 좜λ ₯ν•˜λ©΄ λ‚ μ§œμ™€ μ‹œκ°„ 정보λ₯Ό 좜λ ₯ν•œλ‹€.

new Date() // Thu Feb 09 2023 11:13:23 GMT+0900 (ν•œκ΅­ ν‘œμ€€μ‹œ) {}

30.1.2 new Date(milliseconds)

숫자 νƒ€μž…μ˜ λ°€λ¦¬μ΄ˆλ₯Ό μ „λ‹¬ν•˜λ©΄ 1970λ…„ 1μ›” 1일 0μ‹œ 0λΆ„ 0초λ₯Ό 기점으둜 μ „λ‹¬ν•œ λ°€λ¦¬μ΄ˆλ§ŒνΌ κ²½κ³Όν•œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” Date 객체λ₯Ό λ°˜ν™˜ν•œλ‹€.

new Date(0) // Thu Jan 01 1970 09:00:00 GMT+0900 (ν•œκ΅­ ν‘œμ€€μ‹œ) {}

30.1.3 new Date(dateString)

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

new Date('May 26, 2020 10:00:00')
// Thu May 26 2020 10:00:00 GMT+0900 (ν•œκ΅­ ν‘œμ€€μ‹œ) {}

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

μ—°, μ›”, 일, μ‹œ, λΆ„, 초, λ°€λ¦¬μ΄ˆλ₯Ό μ˜λ―Έν•˜λŠ” 숫자λ₯Ό μ „λ‹¬ν•˜λ©΄ μ§€μ •λœ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” Date 객체λ₯Ό λ°˜ν™˜ν•œλ‹€. μ—°, 월은 ν•„μˆ˜κ°’μ΄λ‹€.

new Date(2020, 2) // => μ›”μ˜ 2λŠ” 3월을 μ˜λ―Έν•œλ‹€.
// Sun Mar 01 2020 00:00:00 GMT+0900

30.2 Date λ©”μ„œλ“œ

30.2.1 Date.now

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

const now = Date.now() // 1675909557307

30.2.2 Date.parse

1970λ…„ 1μ›” 1일 기점으둜 μ „λ‹¬λœ μ§€μ • μ‹œκ°„κΉŒμ§€μ˜ λ°€λ¦¬μ΄ˆλ₯Ό 숫자둜 λ°˜ν™˜ν•œλ‹€.

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

Date.parse('Jan 2, 1970 00:00:00') // 86400000

Date.parse('1970/01/02/09:00:00') // 86400000

30.2.3 Date.UTC

1970λ…„ 1μ›” 1일 기점으둜 μ „λ‹¬λœ μ§€μ • μ‹œκ°„κΉŒμ§€μ˜ λ°€λ¦¬μ΄ˆλ₯Ό 숫자둜 λ°˜ν™˜ν•œλ‹€.

Date.UTC(1970, 0, 2) // 86400000

30.2.4 Date.prototype.getFullYear

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

new Date('2020/07/24').getFullYear() // 2020

30.2.5 Date.prototype.setFullYear

Date 객체에 연도λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•œλ‹€. μ›”, 일도 μ§€μ • κ°€λŠ₯

const today = new Date()
today.setFullYear(2000)
today.getFullYear() // 2000

today.setFullYear(2000, 2, 1)

30.2.6 Date.prototype.getMonth

Date 객체의 월을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€. 0이 1월이닀.

30.2.7 Date.prototype.setMonth

Date 객체에 월을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•œλ‹€. 일도 μ§€μ • κ°€λŠ₯

30.2.8 Date.prototype.getDate

Date 객체의 일을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

30.2.9 Date.prototype.setDate

Date 객체에 일을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•œλ‹€.

30.2.10 Date.prototype.getDay

Date 객체의 μš”μΌμ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€. 0 - μΌμš”μΌ 6 - μ›”μš”μΌ

30.2.11 Date.prototype.getHours

Date 객체의 μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

30.2.12 Date.prototype.setHours

Date 객체에 μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•œλ‹€. λΆ„, 초, λ°€λ¦¬μ΄ˆλ„ μ„€μ • κ°€λŠ₯

30.2.13 Date.prototype.getMinutes

Date 객체의 뢄을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

30.2.14 Date.prototype.setMinutes

Date 객체에 뢄을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•œλ‹€. 초, λ°€λ¦¬μ΄ˆλ„ μ„€μ • κ°€λŠ₯

30.2.15 Date.prototype.getSeconds

Date 객체의 μ΄ˆμ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

30.2.16 Date.prototype.setSeconds

Date 객체에 초λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•œλ‹€. λ°€λ¦¬μ΄ˆλ„ μ„€μ • κ°€λŠ₯

30.2.17 Date.prototype.getMilliSeconds

Date 객체의 λ°€λ¦¬μ΄ˆλ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

30.2.18 Date.prototype.setMilliSeconds

Date 객체에 λ°€λ¦¬μ΄ˆλ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό μ„€μ •ν•œλ‹€.

30.2.19 Date.prototype.getTime

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

30.2.20 Date.prototype.setTime

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

30.2.21 Date.prototype.getTimezoneOffset

UTC와 Date 객체에 μ§€μ •λœ 둜캘 μ‹œκ°„κ³Όμ˜ 차이λ₯Ό λΆ„ λ‹¨μœ„λ‘œ λ°˜ν™˜ν•œλ‹€.

30.2.22 Date.prototype.toDateString

λ¬Έμžμ—΄λ‘œ Date 객체의 λ‚ μ§œλ₯Ό λ°˜ν™˜ν•œλ‹€.

30.2.23 Date.prototype.toTimeString

Date 객체의 μ‹œκ°„μ„ ν‘œν˜„ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•œλ‹€.

30.2.24 Date.prototype.toISOString

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

30.2.25 Date.prototype.toLocaleString

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

30.2.26 Date.prototype.toLocaleTimeString

μ „λ‹¬ν•œ λ‘œμΊ˜μ„ κΈ°μ€€μœΌλ‘œ Date 객체의 μ‹œκ°„μ„ ν‘œν˜„ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•œλ‹€.


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

(function printNow(){
  const today = new Date()
  
  const dayNames = ['μΌμš”μΌ','μ›”μš”μΌ','ν™”μš”μΌ','μˆ˜μš”μΌ','λͺ©μš”일','κΈˆμš”μΌ','ν† μš”μΌ']
  
  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"
  
  hour %= 12
  hour = hour || 12
  
  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)
  setTimeout(printNow, 1000)
}())

Last updated

Was this helpful?