본문 바로가기
React

[React] axios 통신 중 mysql의 timestamp 타입 데이터 가져와서 한국 시간으로 변환하는 방법

by dong_su 2024. 1. 8.

아래는 원하는 데이터가 들어있는 mysql 테이블이다.

 createdAt 컬럼의 데이터들은 글로벌 표준시(UTC)이기 때문에 유저가 보기 좋게 한국 시간으로 바꿔야 한다.


변환 방법

// axios 통신중 부분 코드
.then((res) => {
            console.log(res.data.items);
            const userData = res.data.items.map(user => ({
                userId: user.userId,
                userNickname: user.userNickname,
                userEmail: user.userEmail,
                postingId: user.postingId,
                imageUrl: user.imageUrl,
                content: user.content,
                createdAt: new Date(user.createdAt + 'Z').toLocaleString('en-US', { timeZone: 'Asia/Seoul' }), // 한국 시간대로 변환
                postingCnt: user.postingCnt,
                followingCnt: user.followingCnt,
                followersCnt: user.followersCnt,
            }))
            setUserInfo(userData);
        })
        
 // 아래는 생략

new Date(user.createdAt + 'Z').toLocaleString('en-US', { timeZone: 'Asia/Seoul' })를 사용해서

받은 데이터의 createdAt값을 한국 시간대로 변환한다.

'Z'는 UTC 시간을 나타내며, toLocaleString 메소드를 사용하여 지역 시간대로 변환하면 된다.