๐ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ, ์ง์ ๋ ์ง์ ์๊ฐ์ ๊ณ์ฐํ๋ ์ฝ๋๋ฅผ ์งค ์๋ ์์ง๋ง ๋ณด๋ค ํธ๋ฆฌํ๊ฒ dayjs๋ฅผ ์ด์ฉํ์ฌ ๋ ์ง์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํด๋ณด์.
WHY dayjs?
์ฌ์ค, Moment.js๋ผ๋ ๋ ์ง์ ๊ด๋ จ๋ ์ ๋ช ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์์๋ ์ ์์ฆ ๋ค๋ค dayjs๋ฅผ ์ฐ๋ ๊ฑธ๊น?
1. moment.js์ APIํ์์ ๊ทธ๋๋ก์ ์ง
2. ์ฉ๋์ 33๋ฐฐ ๊ฐ๋ณ๋ค
์ฆ, ์ฑ๋ฅ์ ๊ฑฐ์ ์ฐจ์ด๊ฐ ๋์ง ์์ง๋ง ํจ์ฌ ๊ฐ๋ณ๋ค!
How to use
[์ค์น]
- npm i dayjs ๋ช ๋ น์ด๋ฅผ ํตํด, ์ค์น
- importํ๊ธฐ
์ฐธ๊ณ ๋งํฌ: https://github.com/iamkun/dayjs/issues/475
//์ฒ์์๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ ์ฌ์ฉํ์ง๋ง, import๊ฐ ๋์ง ์์๋ค.
//jsํ์ผ์์๋ ์ ์์ ์ผ๋ก import๋์์ง๋ง, tsํ์ผ์์๋ ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ์ ์ฐธ๊ณ ๋งํฌ๋ฅผ ํตํด ํ์ธ ํ ์ ์๋ค.
import dayjs from 'dayjs' // not worked in ts
const dayjs require('dayjs') // not worked in ts
//๋ฐ๋ผ์, tsํ์ผ์์๋ ์๋์ ๊ฐ์ด importํด์จ๋ค.
import * as dayjs from 'dayjs';
[dayjs ์ฌ์ฉ๋ฒ]
์ฐธ๊ณ ๋งํฌ: https://jsikim1.tistory.com/196?category=899136
1. API ์ฌ์ฉํ ๋ ์ง ์ถ๋ ฅ
...
const now = dayjs() //์ค๋ ๋ ์ง๊ฐ ๊ฐ์ฒด ํํ๋ก ์ ์ฅ
const stringDate = now.format("YY-MM-DD") //2021-12-23 ๊ณผ ๊ฐ์ ๋ชจ์ต์ผ๋ก stringํ์
์ถ๋ ฅ
...
2. dayjs ๋ ์ง ๋ฐ ์๊ฐ ๋ํ๊ธฐ
...
const date = dayjs();
const after3day = date.add(3, "day"); //|| 'd'
const after3month = date.add(3, "month"); // || 'M'
const after3year = date.add(3, "year"); // || 'y'
const after3hour = date.add(3, "hour"); // || 'h'
const after3min = date.add(3, "minute"); // || 'm'
const after3sec = date.add(3, "second"); // || 's'
const after3mil = date.add(3, "millisecond"); // || 'ms'
// ** ๋ํ๋ ์ซ์์ ์์๋ฅผ ๋ฃ์ด, ๋นผ๊ธฐ๋ก๋ ์ฌ์ฉํ ์ ์๋ค. **
3. ๋ ์ง ๋ฐ ์๊ฐ ์ฐจ์ด ๊ตฌํ๊ธฐ
const date1 = dayjs("2021-10-11 10:30:25.495", "YYYY-MM-DD HH:mm:ss.SSS");
const date2 = dayjs("2020-04-08 13:25:30.000", "YYYY-MM-DD HH:mm:ss.SSS");
date1.format("YYYY-MM-DD HH:mm:ss.SSS"); // 2021-10-11 10:30:25.495
date2.format("YYYY-MM-DD HH:mm:ss.SSS"); // 2020-04-08 13:25:30.000
date1.diff(date2); // 47595895495
date1.diff(date2, "year"); // 1
date1.diff(date2, "y"); // 1
date1.diff(date2, "y", true); // 1.5077376883898348
date1.diff(date2, "month"); // 18
date1.diff(date2, "M"); // 18
date1.diff(date2, "M", true); // 18.09285226067802
date1.diff(date2, "week"); // 78
date1.diff(date2, "w"); // 78
date1.diff(date2, "w", true); // 78.69691715443122
date1.diff(date2, "day"); // 550
date1.diff(date2, "d"); // 550
date1.diff(date2, "d", true); // 550.8784200810185
date1.diff(date2, "hour"); // 13221
date1.diff(date2, "h"); // 13221
date1.diff(date2, "h", true); // 13221.082081944445
date1.diff(date2, "minute"); // 793264
date1.diff(date2, "m"); // 793264
date1.diff(date2, "m", true); // 793264.9249166667
date1.diff(date2, "second"); // 47595895
date1.diff(date2, "s"); // 47595895
date1.diff(date2, "s", true); // 47595895.495
date1.diff(date2, "millisecond"); // 47595895495
date1.diff(date2, "ms"); // 47595895495
date1.diff(date2, "ms", true); // 47595895495
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
json [object Object] ์ถ๋ ฅ (0) | 2022.04.13 |
---|---|
new Set์ผ๋ก ๋ฐฐ์ด ์ค๋ณต๊ฐ ์ ๊ฑฐ(with ํผํฌ๋จผ์ค ํ ์คํธ) (0) | 2022.04.11 |
[ES6] Map vs Set (0) | 2022.04.11 |
์ ๊ทํํ์ (0) | 2022.04.11 |
๊น์ ๋ณต์ฌ vs ์์ ๋ณต์ฌ (0) | 2022.04.09 |