๋ฐ์ํ
๐ date-fns
date-fns๋ ๋ ์ง์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ๋ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
โ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
yarn add date-fns
โ date-fns ์ฅ์
- ๋จ์์ฑ: date-fns๋ ํ์ํ ๊ธฐ๋ฅ๋ง์ ๊ฐ์ ธ์ ์ฌ์ฉํ ์ ์์ด์ ๋ณต์ก์ฑ์ ์ค์ด๊ณ ํ์ ์๋ ์ฝ๋๋ฅผ ํฌํจํ์ง ์๋๋ค.
- ๋ชจ๋ํ: ๋ชจ๋ ํจ์๊ฐ ๋ ๋ฆฝ์ ์ด๋ฏ๋ก ํน์ ๊ธฐ๋ฅ๋ง ์ฌ์ฉํ๋ ค๋ฉด ํ์ํ ๋ชจ๋๋ง ๊ฐ์ ธ์ค๋ฉด ๋๋ค.
- ์ผ๊ด๋ API: ๋ ์ง์ ์๊ฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ํจ์๋ค์ด ํต์ผ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๋ค.
- ํ์์กด ์ง์ ๋ฐ ํ์ฅ์ฑ: date-fns๋ ๋ณต์กํ ํ์์กด ๋ณํ ๋ฑ์ ์ง์ํ๋ฉฐ, Date ๊ฐ์ฒด์ ๋ณต์ก์ฑ์ ๊ฐ์ํํด์ค๋ค.
- ํผํฌ๋จผ์ค: Moment.js์ ๋น๊ตํด ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ๋์ํ๋ฉฐ, ๋ฒ๋ค ํฌ๊ธฐ๋ ๋ ์๋ค.
โ date-fns ์ฃผ์ ์ฌ์ฉ ์์
1. parseISO()
๋ฌธ์์ด๋ก ๋ ISO ๋ ์ง๋ฅผ Date ๊ฐ์ฒด๋ก ๋ณํํ๋ ํจ์.
const weddingDate = parseISO(date);
date๋ ISO 8601 ํฌ๋งท(์: "2024-11-12T12:30:00")์ธ ๋ฌธ์์ด๋ก ์ ๋ฌ๋๋ฉฐ, ์ด๋ฅผ Date ๊ฐ์ฒด๋ก ๋ณํํด ๋ค์ํ ๋ ์ง ์ฐ์ฐ์ ์ฌ์ฉ๋๋ค.
2. format()
- ๋ ์ง ๊ฐ์ฒด๋ฅผ ํน์ ํ์์ผ๋ก ๋ณํํ์ฌ ๋ฌธ์์ด๋ก ์ถ๋ ฅ.
weddingDate๋ฅผ yy.MM.dd ํฌ๋งท(์: "24.11.12")์ผ๋ก ํฌ๋งทํ ํ๋ค.format(weddingDate, 'yy.MM.dd')
3. getDay()
- ์ฃผ์ด์ง Date ๊ฐ์ฒด์์ ์์ผ์ ์ซ์(0~6)๋ก ๋ฐํํ๋ค. (0์ ์ผ์์ผ, 6์ ํ ์์ผ)
DAYS[dayIndex]์ ํจ๊ป ์ฌ์ฉํ์ฌ ํด๋น ์์ผ์ ๋ฌธ์์ด๋ก ๋ณํํ ์ ์๋ค.const dayIndex = getDay(weddingDate);
<div className={cx('txt-day')}>{DAYS[dayIndex]}</div>
์ date-fns๋ฅผ ์ฌ์ฉํ๋๊ฐ?
- ๋ ์ง ์ฐ์ฐ์ ๋ณต์ก์ฑ: ๊ธฐ๋ณธ Date ๊ฐ์ฒด๋ก ๋ ์ง ์ฐ์ฐ์ ์ฒ๋ฆฌํ๋ ค๋ฉด ๋ณต์กํ๊ณ ์๋ฌ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ด ์ฝ๋๊ฐ ๋๊ธฐ ์ฝ๋ค. date-fns๋ ์ด๋ฌํ ์์ ์ ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ค๋ค.
- ๊ฐ๋ ์ฑ ํฅ์: ๋ ์ง๋ฅผ ํฌ๋งทํ๊ฑฐ๋ ๋ณํํ๋ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ๋ ๊ฒ๋ณด๋ค format() ๊ฐ์ ์ ํธ๋ฆฌํฐ ํจ์๊ฐ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ธ๋ค.
- ์ ์ง ๋ณด์์ฑ: ๋ด์ฅ Date ๊ฐ์ฒด ๋ฉ์๋๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ผ๊ด์ฑ์ด ๋ถ์กฑํ ์ ์์ง๋ง, date-fns๋ ๋ชจ๋ ํ๊ฒฝ์์ ์ผ๊ด๋๊ฒ ๋์ํ๋ค.
๋ฐ์ํ
'๐ฉโ๐ป hello, world! > react' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฌธ์์ด ๋ฐ์ดํฐ์ ์ค๋ฐ๊ฟ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ 3๊ฐ์ง (1) | 2024.11.18 |
---|---|
dangerouslySetInnerHTML (1) | 2024.11.18 |
JSON Server ์ฌ์ฉ (1) | 2024.11.05 |
[error] es lint error - ์ค ๋ฐ๊ฟ ํ์ ์๋ฌ(CRLF/LF) (0) | 2024.11.05 |
[error] es lint error - Unknown options: extensions, resolvePluginsRelativeTo - 'extensions' has been removed. (0) | 2024.11.05 |