์ค๋ ๋ ์ง, ํ์ฌ ์๊ฐ ๊ฐ์ ธ์ค๊ธฐ
const getDefaultDate = () => {
const today = new Date();
const year = today.getFullYear();
const month = (today.getMonth() + 1).toString().padStart(2, '0');
const day = today.getDate().toString().padStart(2, '0');
const hours = today.getHours().toString().padStart(2, '0');
const minutes = today.getMinutes().toString().padStart(2, '0');
const seconds = today.getSeconds().toString().padStart(2, '0');
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;
};
const [defaultDate, setDefaultDate] = useState(getDafaultDate());
1. `getDefaultDate` ํจ์:
- ํ์ฌ ๋ ์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ๋ฌธ์์ด๋ก ํฌ๋งทํ
ํ์ฌ ๋ฐํํ๋ ํจ์
- `new Date()`๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ๋ ์ง์ ์๊ฐ์ ์์ฑํ๊ณ , `getFullYear()`, `getMonth()`, `getDate()`, `getHours()`, `getMinutes()`, `getSeconds()` ๋ฑ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์ ๋ณด๋ฅผ ์ถ์ถํ๋ค.
- `padStart(2, '0')` ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ผ์ ํ ๊ธธ์ด(2์๋ฆฌ)๋ก ํ์๋๋๋ก ๊ฐ ๊ฐ์ ํฌ๋งทํ
ํ๋ค.
2. `useState` ํ
์ ์ฌ์ฉํ์ฌ React ์ํ ์ ์:
- `const [defaultDate, setDefaultDate] = useState(getDafaultDate());` ๋ผ์ธ์์ `useState` ํ
์ ์ฌ์ฉํ์ฌ `defaultDate`๋ผ๋ ์ํ ๋ณ์๋ฅผ ์ ์
- `getDafaultDate()` ํจ์๋ฅผ ํธ์ถํ์ฌ ํ์ฌ ๋ ์ง ๋ฐ ์๊ฐ ์ ๋ณด๋ฅผ ์ด๊ธฐ ์ํ ๊ฐ์ผ๋ก ์ค์
์ค๋ ๋ ์ง ๊ฐ์ ธ์ค๊ธฐ, ์๊ฐ์ 00:00:00์ผ๋ก ์ค์
const getDafaultDate = () => {
const today = new Date();
const year = today.getFullYear();
const month = (today.getMonth() + 1).toString().padStart(2, '0');
const day = today.getDate().toString().padStart(2, '0');
const hours = '00';
const minutes = '00';
const seconds = '00';
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`;
};
const [defaultDate, setDefaultDate] = useState(getDafaultDate());
์์ ๊ฐ์ด ์ค๋ ๋ ์ง๋ฅผ ๊ฐ์ ธ์ค๋ฉด์ ์๊ฐ๋ง ๊ณ ์ ํด์ค ์ ์๋ค.
JSX ์์ ์ฌ์ฉ
<input
defaultValue={defaultDate}
type='datetime-local'
step='1'
max={maxDate}
style={{ marginRight: '5px', width: '230px' }}
className='form-control'
{...register('selectedDate', {
required: {
value: true,
message: t('text.file.dateIsRequired'),
},
})}
/>
JSX ์ input ํ๊ทธ defaultValue ์์ฑ์ defaultDate๋ฅผ ๋ฃ์ด์ค์ผ๋ก์จ ์ฌ์ฉํ ์ ์๋ค.
ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ธ