게시글 수정 페이지을 개발중에 서버에서 받은 날짜 데이터(string)을 datepicker에 넣어야 했다.
서버에서는
yyyyMMdd
으로 주었기 때문에 다음과 같은 코드를 짜서 해결했다.
const changeDateFormat = useCallback(() => {
if (empty(value)) {
return;
}
let startyyyy = value[0].substring(0, 4);
let startMM = value[0].substring(4, 6);
let startdd = value[0].substring(6, 8);
let endyyyy = value[1].substring(0, 4);
let endMM = value[1].substring(4, 6);
let enddd = value[1].substring(6, 8);
let startDate = new Date(startyyyy, startMM - 1, startdd);
let endDate = new Date(endyyyy, endMM - 1, enddd);
setStartDate(startDate);
setEndDate(endDate);
}, [value]);
useEffect(() => {
changeDateFormat();
}, []);
해당 코드는 substring으로 yyyy, MM, dd를 잘라 각각 변수에 대입해준 후 new Date()에 넣어주었다. 달은 -1을 해주어야 한다.