ํ์ค ๋นํธ์ธ ๊ฐ์ฒด์ธ Date๋ ๋ ์ง์ ์๊ฐ์ ์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ ๋นํธ์ธ ๊ฐ์ฒด์ด๋ฉด์ ์์ฑ์ ํจ์๋ค.
Date๋ ์์ฑ์ ํจ์
๋ค. Date ์์ฑ์ ํจ์๋ก ์์ฑํ Date ๊ฐ์ฒด๋ ๋ด๋ถ์ ์ผ๋ก ๋ ์ง์ ์๊ฐ
์ ๊ฐ๋๋ค.
Date ์์ฑ์ ํจ์๋ฅผ ์ธ์ ์์ด new ์ฐ์ฐ์์ ํจ๊ป ํธ์ถํ๋ฉด ํ์ฌ
๋ ์ง์ ์๊ฐ์ ๊ฐ์ง๋ Date ๊ฐ์ฒด๋ฅผ ๋ฐํ
ํ๋ค.Date ๊ฐ์ฒด๋ ๋ด๋ถ์ ์ผ๋ก ๋ ์ง์ ์๊ฐ์ ๋ํ๋ด๋ ์ ์๊ฐ์ ๊ฐ์ง๋งDate ๊ฐ์ฒด๋ฅผ ์ฝ์์ ์ถ๋ ฅํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ์ถ๋ ฅ
new Date(); // Mon Jul 06 2020 01:03:17 GMT:0900 (๋ํ๋ฏผ๊ตญ ํ์ค์)
Date ์์ฑ์ ํจ์๋ฅผ new ์ฐ์ฐ์ ์์ด ํธ์ถํ๋ฉด Date ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ง ์๊ณ ๋ ์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ ๋ฐํ
Date(); // "Mon Jul 06 2020 01:03:17 GMT:0900 (๋ํ๋ฏผ๊ตญ ํ์ค์)"
Date ์์ฑ์ ํจ์์ ์ซ์ ํ์ ์ ๋ฐ๋ฆฌ์ด๋ฅผ ์ธ์๋ก ์ ๋ฌํ๋ฉด 1970๋ 1์ 1์ผ 00:00:00(UTC)์ ๊ธฐ์ ์ผ๋ก ์ธ์๋ก ์ ๋ฌ๋ ๋ฐ๋ฆฌ์ด๋งํผ ๊ฒฝ๊ณผํ
๋ ์ง์ ์๊ฐ์ ๋ํ๋ด๋ Date ๊ฐ์ฒด๋ฅผ ๋ฐํ
ํ๋ค.
// ํ๊ตญ ํ์ค์ KST๋ ํ์ ์ธ๊ณ์ UTC์ 9์๊ฐ์ ๋ํ ์๊ฐ์ด๋ค.
new Date(0); // Mon Jul 06 2020 01:03:17 GMT:0900 (๋ํ๋ฏผ๊ตญ ํ์ค์)
1s = 1,000ms
1m = 60s * 1,000ms - 60,000ms;
1h = 60m * 60,000ms = 3,600,000ms
1d = 24h * 3,600,600ms = 86,400,000ms
new Date(86400000); // Mon Jul 07 2020 01:03:17 GMT:0900 (๋ํ๋ฏผ๊ตญ ํ์ค์)
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');
// Tue Mar 26 2020 10:00:00 GMT+0900 (๋ํ๋ฏผ๊ตญ ํ์ค์)
Date ์์ฑ์ ํจ์์ ์ฐ,์,์ผ,์,๋ถ,์ด,๋ฐ๋ฆฌ์ด๋ฅผ ์๋ฏธํ๋
์ซ์๋ฅผ ์ธ์๋ก ์ ๋ฌํ๋ฉด ์ง์ ๋ ๋ ์ง์ ์๊ฐ์ ๋ํ๋ด๋ Date ๊ฐ์ฒด๋ฅผ ๋ฐํ
ํ๋ค. ์ด๋ ์ฐ,์์ ๋ฐ๋์ ์ง์ ํด์ผ ํ๋ค. ์ง์ ํ์ง ์์ ์ต์ ์ ๋ณด๋ 0 ๋๋ 1๋ก ์ด๊ธฐํ๋๋ค
// ์์ ๋ํ๋ด๋ 2๋ 3์์ ์๋ฏธํ๋ค. 2020/3/1/00:00:00:00
new Date(2020, 2);
// Sun Mar 01 2020 00:00:00 GMT:0900 (๋ํ๋ฏผ๊ตญ ํ์ค์)
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 (๋ํ๋ฏผ๊ตญ ํ์ค์)
1970๋ 1์ 1์ผ 00:00:00(UTC)์ ๊ธฐ์ ์ผ๋ก ํ์ฌ ์๊ฐ๊น์ง ๊ฒฝ๊ณผํ ๋ฐ๋ฆฌ์ด๋ฅผ ์ซ์๋ก ๋ฐํํ๋ค.
const now = Date.now(); // 1593971539112
// Date ์์ฑ์ ํจ์์ ์ซ์ ํ์
์ ๋ฐ๋ฆฌ์ด๋ฅผ ์ธ์๋ก ์ ๋ฌํ๋ฉด 1970๋
1์ 1์ผ 00:00:00(UTC)์
// ๊ธฐ์ ์ผ๋ก ์ธ์๋ก ์ ๋ฌ๋ ๋ฐ๋ฆฌ์ด๋งํผ ๊ฒฝ๊ณผํ ๋ ์ง์ ์๊ฐ์ ๋ํ๋ด๋ Date ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
new Date(now);
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
1970๋ 1์ 1์ผ 00:00:00(UTC)์ ๊ธฐ์ ์ผ๋ก ์ธ์๋ก ์ ๋ฌ๋ ์ง์ ์๊ฐ๊น์ง์ ๋ฐ๋ฆฌ์ด๋ฅผ ์ซ์๋ก ๋ฐํ.
Date.UTC ๋ฉ์๋๋ newDate(year,month[,day,hour,minute,second,millisecond])์ ๊ฐ์ ํ์์ ์ธ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
Month๋ 0~11๊น์ง์ ์ ์๋ค. 0๋ถํฐ ์์ํ๋ฏ๋ก ์ฃผ์๊ฐ ํ์!
Date.UTC(1970, 0,2); // 86400000
Date.UTC('1970/1/2'); // NaN
Date ๊ฐ์ฒด์ ์ฐ๋๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ๋ฐํ
new Date('2020/07/24').getFullYear(); // 2020
Date ๊ฐ์ฒด์ ์ฐ๋๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ์ค์ , ์ฐ๋ ์ด์ธ์ ์ต์ ์ผ๋ก ์, ์ผ๋ ์ค์ ๊ฐ๋ฅ
const today = new Date();
// ๋
๋ ์ง์
today.setFullYear(2000);
today.getFullYear(); // 2000
// ๋
๋/์/์ผ ์ง์
today.setFullYear(1900,0,1);
today.getFullYear(); // 1900
Date ๊ฐ์ฒด์ ์์ ๋ํ๋ด๋ 0 ~ 11์ ์ ์๋ฅผ ๋ฐํ
new Date('2020/07/24').getMonth(); // 6
Date ๊ฐ์ฒด์ ์์ ๋ํ๋ด๋ 0~11์ ์ ์๋ฅผ ์ค์ 1์์ 0, 12์์ 11์ด๋ค.
const today = new Date();
// ์ ์ง์
today.setMonth(); // 1์
today.getMonth(); // 0
// ์/์ผ ์ง์
today.setMonth(11,1); // 12์ 1์ผ
today.getMonth(); // 11
Date ๊ฐ์ฒด์ ๋ ์ง(1~31)์ ๋ํ๋ด๋ ์ ์๋ฅผ ๋ฐํ
new Date('2020/07/24').getDate(); // 24
Date ๊ฐ์ฒด์ ๋ ์ง(1~31)์ ๋ํ๋ด๋ ์ ์๋ฅผ ์ค์
const today = new Date();
// ๋ ์ง ์ง์
today.setDate(1);
today.getDate(); // 1
Date ๊ฐ์ฑ์ ์์(0 ~ 6)์ ๋ํ๋ด๋ ์ ์๋ฅผ ๋ฐํํ๋ค.
new Date('2020/07/24').getDay(); // 5
Date ๊ฐ์ฑ์ ์๊ฐ(0~23)์ ๋ํ๋ด๋ ์ ์๋ฅผ ๋ฐํํ๋ค.
new Date('2020/07/24/12:00').getHours(); // 12
Date ๊ฐ์ฒด์ ์๊ฐ์ ๋ํ๋ด๋ ์ ์๋ฅผ ์ค์ ํ๋ค.
const today = new Date();
// ์๊ฐ ์ง์
today.setHours(7);
today.getHours(); // 7
// ์๊ฐ/๋ถ/์ด/๋ฐ๋ฆฌ์ด ์ง์
today.setHours(0,0,0,0); // 00:00:00:00
today.getHours(); // 0
Date ๊ฐ์ฒด์ ๋ถ์ ๋ํ๋ด๋ ์ ์๋ฅผ ๋ฐํํ๋ค.
new Date('2020/07/24/12:30').getMinutes(); // 30
`Date ๊ฐ์ฒด์ ๋ถ์ ๋ํ๋ด๋ ์ ์๋ฅผ ์ค์ ํ๋ค.
const today = new Date();
// ๋ถ ์ง์
today.setMinutes(50);
today.getMinutes(); // 50
// ๋ถ/์ด/๋ฐ๋ฆฌ์ด ์ง์
today.setMinutes(5,10,999); // HH:05:10:999
today.getMinutes(); // 5
`Date ๊ฐ์ฒด์ ์ด๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ๋ฐํํ๋ค.
new Date('2020/07/24/12:30:10').getSeconds(); // 10
`Date ๊ฐ์ฒด์ ์ด๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ์ค์ ํ๋ค.
const today = new Date();
// ์ด ์ง์
today.setSeconds(30);
today.getSeconds(); // 30
// ์ด/๋ฐ๋ฆฌ์ด ์ง์
today.setSeconds(10,0); // HH:05:10:000
today.getSeconds(); // 10
์์ ๊ฐ ๋๋ฌด ๋ง์ ๊ด๊ณ๋ก ์ด์ ๋ถํฐ๋ ์๋ตํ๊ฒ ๋ค. ๐๐
Date ๊ฐ์ฒด์ ๋ฐ๋ฆฌ์ด๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ๋ฐํ
Date ๊ฐ์ฒด์ ๋ฐ๋ฆฌ์ด๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ์ค์
1970๋ 1์ 1์ผ 00:00:00(UTC)๋ฅผ ๊ธฐ์ ์ผ๋ก Date ๊ฐ์ฒด์ ์๊ฐ๊น์ง ๊ฒฝ๊ณผ๋ ๋ฐ๋ฆฌ์ด๋ฅผ ๋ฐํ
Date ๊ฐ์ฒด์ 1970๋ 1์ 1์ผ 00:00:00(UTC)๋ฅผ ๊ธฐ์ ์ผ๋ก ๊ฒฝ๊ณผ๋ ๋ฐ๋ฆฌ์ด๋ฅผ ์ค์
UTC์ Date ๊ฐ์ฒด์ ์ง์ ๋ ๋ก์บ ์๊ฐ๊ณผ์ ์ฐจ์ด๋ฅผ ๋ถ ๋จ์๋ก ๋ฐํํ๋ค. KST๋ UTC์ 9์๊ฐ์ ๋ํ ์๊ฐ์ด๋ค. ์ฆ UTC = KST - 9h๋ค
์ฌ๋์ด ์ฝ์ ์ ์๋ ํ์์ ๋ฌธ์์ด๋ก Date ๊ฐ์ฒด์ ๋ ์ง๋ฅผ ๋ฐํํ๋ค.
์ฌ๋์ด ์ฝ์ ์ ์๋ ํ์์ผ๋ก Date ๊ฐ์ฒด์ ์๊ฐ์ ํํํ ๋ฌธ์์ด์ ๋ฐํ
ISO 8601 ํ์์ผ๋ก Date ๊ฐ์ฒด์ ๋ ์ง์ ์๊ฐ์ ํํํ ๋ฌธ์์ด์ ๋ฐํ
ํจ์๋ก ์ ๋ฌํ ๋ก์บ์ ๊ธฐ์ค์ผ๋ก Date ๊ฐ์ฒด์ ๋ ์ง์ ์๊ฐ์ ํํํ ๋ฌธ์์ด์ ๋ฐํํใท. ์ธ์๋ฅผ ์๋ตํ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ๋์ ์ค์ธ ์์คํ ์ ๋ก์บ์ ์ ์ฉํ๋ค.
์ธ์๋ก ์ ๋ฌํ ๋ก์บ์ ๊ธฐ์ค์ผ๋ก Date ๊ฐ์ฒด์ ์๊ฐ์ ํํํ ๋ฌธ์์ด์ ๋ฐํํ๋ค. ์ธ์๋ฅผ ์๋ตํ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ์ค์ธ ์์คํ ์ ๋ก์บ์ ์ ์ฉํ๋ค.
ํ์ฌ ๋ ์ง์ ์๊ฐ์ ์ด ๋จ์๋ก ๋ฐ๋ณต ์ถ๋ ฅ
(function printNow(){
const toay = 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 || 12l // hour๊ฐ 0์ด๋ฉด 12๋ฅผ ์ฌํ ๋น
// 10 ๋ฏธ๋ง์ธ ๋ถ๊ณผ ์ด๋ฅผ 2์๋ฆฌ๋ก ๋ณ๊ฒฝ
minute = minute < 10 ? "0" + minute : minute;
second = second < 10 ? "0" + second : second;
const now = `${year}๋
${month}์ ${date}์ผ ${hour}:${minute}:${second} ${ampm}`;
// 1์ด๋ง๋ค printNow ํจ์๋ฅผ ์ฌ๊ถ ํธ์ถํ๋ค.
setTimeOut(printNow, 1000);
}());