2025. 8. 20. 16:16ใFront-end/JavaScript

๋ชฉ์ฐจ
1. Date ๊ฐ์ฒด
2. ๊ฐ์ฒด ์์ฑ : new Date()
2-1. new Date()
2-2. new Date(milliseconds)
2-3. new Date(datestring)
2-4. new Date(year, month, date, hours, minutes, seconds, ms)
3. Date ๋ฉ์๋๋ก ๋ ์ง ๊ตฌ์ฑ ์์ ์ป๊ธฐ
3-1. get ํจ์
3-2. ๊ตญ๊ฐ ํ๊ธฐ์ ๋ง์ถฐ ์๊ฐ ์ ๋ณด๋ฅผ ํํ
4. Date ๋ฉ์๋๋ก ๋ ์ง ๊ตฌ์ฑ ์์ ์ค์ ํ๊ธฐ
5. ์๋๊ณ ์นจ
6. ์์ฐจ ์ธก์ ํ๊ธฐ
6-1. Date ๊ฐ์ฒด๋ฅผ ์ซ์๋ก ๋ณ๊ฒฝ
6-2. Date.now()
7. ๊ฐ์ฒด์ ํ๋ณํ
1. Date ๊ฐ์ฒด
Date๋ ๋ ์ง ๊ด๋ จ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ ๋ด์ฅ ๊ฐ์ฒด์ด๋ค.
Date์ ์์ฑ ๋ฐ ์์ , ์๊ฐ์ ์ ์ฅ๊ณผ ์ธก์ , ํ์ฌ ๋ ์ง์ ์ถ๋ ฅ ๋ฑ์ ํ ์ ์๋ค.
2. ๊ฐ์ฒด ์์ฑ : new Date()
new Date()๋ฅผ ํธ์ถํ๋ฉด ์๋ก์ด Date ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง๋๋ฐ, ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ํธ์ถํ ์ ์๋ค.
1. new Date()
์ธ์ ์์ด ๊ฐ์ฒด๋ฅผ ํธ์ถํ๋ฉด ํ์ฌ ๋ ์ง ๋ฐ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
// ํ์ฌ ๋ ์ง ๋ฐ ์๊ฐ ์ถ๋ ฅ
let now = new Date();
alert( now );

2. new Date(milliseconds)
UTC ๊ธฐ์ค(UTC+0) 1970๋
1์ 1์ผ 0์ 0๋ถ 0์ด์์ milliseconds ํ์ ์์ ์ด ์ ์ฅ๋ ๊ฐ์ฒด๊ฐ ๋ฐํ๋๋ค.
1970๋
์ฒซ ๋ ์ ๊ธฐ์ค์ผ๋ก ํ๋ฌ๊ฐ ๋ฐ๋ฆฌ์ด๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ํ์์คํฌํ(timestamp)๋ผ๊ณ ํ๋ค.
// 1970๋
1์ 1์ผ 0์ 0๋ถ 0์ด
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );
// 1970๋
1์ 1์ผ์ 24์๊ฐ ํ
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
// 1970๋
1์ 1์ผ์ 24์๊ฐ ์
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );



3. new Date(datestring)
์ธ์๊ฐ ๋ฌธ์์ด ํ๋๋ผ๋ฉด, ํด๋น ๋ฌธ์์ด์ ์๋์ผ๋ก ํ์ฑ๋์ด ๋ ์ง๋ฅผ ๊ณ์ฐํ๋ค.
// 2017๋
let date = new Date("2017");
alert(date);
// 2017๋
7์
let date = new Date("2017-07");
alert(date);
// 2017๋
1์ 26์ผ
let date = new Date("2017-01-26");
alert(date);



๊ตฌ๋ฌธ ๋ถ์์ ์ ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ Date.parse(str)์์ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์๋ ์กฐ๊ฑด์ ๋ง์ง ์๋ ๋ฌธ์์ด์ ๋ฃ์ผ๋ฉด NaN์ด ๋ฐํ๋๋ค.
- YYYY-MM-DD : ๋ ์ง(์ฐ-์-์ผ) / (YYYY-MM, YYYY๋ ๊ฐ๋ฅ)
- "T" : ๊ตฌ๋ถ ๊ธฐํธ (new Date('2025-03-24T19:22:24');
- HH:mm:ss.sss : ์:๋ถ:์ด.๋ฐ๋ฆฌ์ด
- 'Z'(์ต์ ) : +-hh:mm ํ์์ ์๊ฐ๋๋ฅผ ๋ํ๋
4. new Date(year, month, date, hours, minutes, seconds, ms)
์ฃผ์ด์ง ์ธ์๋ฅผ ์กฐํฉํด ๋ง๋ค ์ ์๋ ๋ ์ง๊ฐ ์ ์ฅ๋ ๊ฐ์ฒด๊ฐ ๋ฐํ๋๋ค. (์ง์ญ ์๊ฐ๋ ๊ธฐ์ค)
์ฒซ๋ฒ์งธ ์ธ์์ ๋๋ฒ์งธ ์ธ์๋ง ํ์๊ฐ์ด๋ค.
- year๋ ๋ฐ๋์ 4์๋ฆฌ ์ซ์์ฌ์ ํ๋ค.
- month๋ 0๋ถํฐ 11 ์ฌ์ด์ ์ซ์์ฌ์ผ ํ๋ค.
- date ๊ฐ์ด ์๋ ๊ฒฝ์ฐ, 1์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
- hours/minutes/seconds/ms ๊ฐ์ด ์๋ ๊ฒฝ์ฐ, 0์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
let a = new Date(25, 7); // year๋ฅผ ๋์๋ฆฌ๋ก ์
๋ ฅํ์ฌ 1925๋
๋๋ก ์
๋ ฅ๋จ
console.log(a);
let b = new Date(2025, 7);
console.log(b);
let c = new Date(2025, 7, 25, 5, 11, 3, 2543);
console.log(c);

ํ์ ์ธ์๋ฅผ ์ ๋ ฅํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ 1970๋ ์ฒซ๋ ์ ๋ฐํํ๋ค.
3. Date ๋ฉ์๋๋ก ๋ ์ง ๊ตฌ์ฑ์์ ์ป๊ธฐ
1. get ํจ์
- getFullYear()
์ฐ๋(๋ค์๋ฆฌ์)๋ฅผ ๋ฐํ - getMonth()
์์ ๋ฐํ(0์ด์ 11์ดํ) - getDate()
์ผ์ ๋ฐํ(1์ด์ 31 ์ดํ) - getHours(), getMinutes(), getSeconds(), getFilliseconds()
์, ๋ถ, ์ด, ๋ฐ๋ฆฌ์ด๋ฅผ ๋ฐํ - getDay()
0(์ผ์์ผ)๋ถํฐ 6(ํ ์์ผ)๊น์ง์ ์ซ์ ์ค ํ๋๋ฅผ ๋ฐํ - getTime()
์ฃผ์ด์ง ์ผ์์ 1970๋ 1์ 1์ผ 00์ 00๋ถ 00์ด ์ฌ์ด์ ๊ฐ๊ฒฉ์ ํ์์คํฌํ๋ฅผ ๋ฐํ - getTimezoneOffset()
ํ์ง ์๊ฐ๊ณผ ํ์ค ์๊ฐ์ ์ฐจ์ด(๋ถ)๋ฅผ ๋ฐํ
// ํ์ฌ ์ผ์
let date = new Date();
console.log(`getFullYear(): ${date.getFullYear()}`);
console.log(`getMonth(): ${date.getMonth()}`);
console.log(`getDate(): ${date.getDate()}`);
console.log(`getHours(): ${date.getHours()}`);
console.log(`getDay(): ${date.getDay()}`);
console.log(`getTime(): ${date.getTime()}`);
console.log(`getTimezoneOffset(): ${date.getTimezoneOffset()}`);

2. ๊ตญ๊ฐ ํ๊ธฐ์ ๋ง์ถฐ ์๊ฐ ์ ๋ณด๋ฅผ ํํ
๊ฐ๋จํ๊ฒ ์๊ฐ ์ ๋ณด๋ฅผ ํํํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ ๋ฉ์๋๋ฅผ ํ์ฉํ ์ ์๋ค.
์๋ ๋ฉ์๋๋ค์ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์ ์ค์ ๋ ๊ตญ๊ฐ์ ํ๊ธฐ์ ๋ง์ถฐ ๋ ์ง์ ์๊ฐ์ ๋ณด์ฌ์ค๋ค.
- toLocalDateString()
- toLocaleTimeString()
- toLocalString()
let myDate = new Date();
console.log(myDate.toLocaleDateString()); // myDate๊ฐ ๊ฐ์ง ๋ ์ง์ ๋ํ ์ ๋ณด (๋
. ์. ์ผ)
console.log(myDate.toLocaleTimeString()); // myDate๊ฐ ๊ฐ์ง ์๊ฐ์ ๋ํ ์ ๋ณด (์:๋ถ:์ด)
console.log(myDate.toLocaleString()); // myDate๊ฐ ๊ฐ์ง ๋ ์ง์ ์๊ฐ์ ๋ํ ์ ๋ณด (๋
. ์. ์ผ ์:๋ถ:์ด)

4. Date ๋ฉ์๋๋ก ๋ ์ง ๊ตฌ์ฑ์์ ์ค์ ํ๊ธฐ
get ๋์ set์ ์ฌ์ฉํ๋ ๋ฉ์๋๋ก ๋ ์ง ๊ตฌ์ฑ ์์๋ฅผ ์ค์ ํ ์ ์๋ค.
์ฌ๊ธฐ์ Day๋ ์ค์ ํ ์ ์๋ค.
let date = new Date();
console.log(`setFullYear(year, [month], [date]): ${date.setFullYear(2000)}`);
console.log(`setMonth(month,[date]): ${date.setMonth(7, 25)}`);
console.log(`setDate(date): ${date.setDate(13)}`);
// setHours, setMinutes, setSeconds, setMilliseconds ์์(์ธ์๋ ๋ณธ์ธ ๊ฒ๋ถํฐ ์์)
console.log(`setHours(hour, [min], [sec], [ms]): ${date.setHours(23)}`);
console.log(`setTime(milliseconds): ${date.setTime(24* 3600 * 1000)}`);

5. ์๋๊ณ ์นจ
Date ๊ฐ์ฒด๋ ์๋๊ณ ์นจ ๊ธฐ๋ฅ์ด ์์ด์, ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ๊ฐ์ ์ค์ ํ๋ ค๊ณ ํ๋ฉด ์๋ ๊ณ ์นจ ๊ธฐ๋ฅ์ด ํ์ฑํ๋์ด ๊ฐ์ด ์๋์ผ๋ก ์์ ๋๋ค.
์ ๋ ฅ๋ฐ์ ๋ ์ง ๊ตฌ์ฑ ์์๊ฐ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด ์ด๊ณผ๋ถ์ ์๋์ผ๋ก ๋ค์ ๋ ์ง ๊ตฌ์ฑ ์์์ ๋ฐฐ๋ถ๋๋ค.
let date = new Date(2014, 0, 33);
console.log(date);

์๋ ๊ณ ์นจ์ ์ผ์ ์๊ฐ์ด ์ง๋ ํ์ ๋ ์ง๋ฅผ ๊ตฌํ๋ ๋ฐ์ ์ข ์ข ์ฌ์ฉ๋๋ค.
let date = new Date(2025, 1, 1 + 1000);
console.log(date);

6. ์์ฐจ ์ธก์ ํ๊ธฐ
1. Date ๊ฐ์ฒด๋ฅผ ์ซ์๋ก ๋ณ๊ฒฝ
Date ๊ฐ์ฒด๋ฅผ ์ซ์ํ์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ํ์์คํฌํ๊ฐ ๋๋ค. (getTime() ํธ์ถ ์ ๋ฐํ๋๋ ๊ฐ)
let startDate = new Date();
for(let i=0;i<100000;i++){
let doSomethin = i*i*i;
}
let endDate = new Date();
console.log(`๋ฐ๋ณต๋ฌธ์ ๋๋๋ฐ ${endDate - startDate}๋ฐ๋ฆฌ์ด ๊ฑธ๋ ธ์ต๋๋ค.`);

2. Date.now()
Date ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ง ์์๋ Date.now ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ฐจ๋ฅผ ๊ตฌํ ์ ์๋ค.
Date.now()์ new Date().getTime()๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ํ์ง๋ง, Date ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ง ์์, ๊ฐ๋น์ง ์ปฌ๋ ํฐ ์ผ์ ์ค์ผ ์ ์๋ค.
์ฆ, ์ฑ๋ฅ์ด ๋ ์ข๋ค.
let startDate = new Date();
for(let i=0;i<100000;i++){
let doSomethin = i*i*i;
}
let endDate = Date.now();
console.log(`๋ฐ๋ณต๋ฌธ์ ๋๋๋ฐ ${endDate - startDate}๋ฐ๋ฆฌ์ด ๊ฑธ๋ ธ์ต๋๋ค.`);

7. Date ๊ฐ์ฒด์ ํ๋ณํ
Date ๊ฐ์ฒด์ ์๋ฃํ์ ํ์ธํด๋ณด์
let myDate = new Date(2017, 4, 18);
console.log(typeof myDate); // object
console.log(String(myDate)); // Thu May 18 2017 00:00:00 GMT+0900 (Korean Standard Time)
console.log(Number(myDate)); // 1495033200000
console.log(Boolean(myDate)); // true

Date ๊ฐ์ฒด๊ฐ String, Number, Boolean์ผ๋ก ํ๋ณํ์ด ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฌ๊ธฐ์ number ํ์ ์ ๊ฐ์ getTime()์ ํธ์ถํ์ ๋์ ๊ฐ์ด ๋๊ฐ์ ํ์์คํฌํ๋ฅผ ์ป๋ ๊ฑธ ๋ณผ ์ ์๋ค.
๋ฐ๋ผ์ Date ๊ฐ์ฒด๋ก ์ฌ์น ์ฐ์ฐ์ ํ์ฌ ์๊ฐ์ฐจ๋ฅผ ๊ตฌํ ์๋ ์๋ค.
let myDate = new Date(2017, 4, 18);
let myDate2 = new Date(2017, 4, 24);
let timeDiff = myDate2 - myDate;
console.log(timeDiff);
console.log(timeDiff/1000); // sec
console.log(timeDiff/1000/60); // min
console.log(timeDiff/1000/60/60); // hour
console.log(timeDiff/1000/60/60/24) // date

์ฐธ๊ณ
'Front-end > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| B20 : ๋ฐฐ์ด (2) | 2025.08.21 |
|---|---|
| B19 : ๋ฉํผ ๊ฐ์ฒด๋ก ์์ํ์ ๋ฉ์๋ ์ฐ๊ธฐ (0) | 2025.08.21 |
| B17 : ์ฌ๋ณผ(Symbol) ํ์ (0) | 2025.08.20 |
| B16 : ์์ฑ์ ํจ์์ new ์ฐ์ฐ์ (0) | 2025.08.19 |
| B15 : ๊ฐ์ฒด์ ๋ฉ์๋ (0) | 2025.08.19 |
GitHub