[TIL] 23Y01M31D
in TIL
Facts(사실, 객관)
React Native를 이용하여 회사 프로젝트를 진행하고 있었으며, 출석을 했을 경우에 출석 도장을 찍히게 구현하고 싶었다.
Feelings(느낌, 주관)
API연동을 하고 해당 날짜를 받아오고 있었는데 DB에서는 Unix Timestamp형식으로 되어 있었다. 그래서 나도 해당 형식으로 맞춰서 값을 비교해야겠다. Unix Timestamp도 처음 들어봤고 막상 사용하려고 하니까 막막함이 앞섰지만 계속해서 자료를 찾아보면서 익숙해지려고 노력했다.
Findings(배운 점)
DB에서 해당 출석 체크된 테이블을 가져와서 map함수를 통해서 Timestamp를 추출하였다. Timestamp를 date로 변환하기 위해 1000을 곱해줘야 한다는 것을 알게 되었고 date형식으로 바꾼 후에는 내가 원하는 형식에 따라 커스텀을 진행하였다. 또한, Unix Timestamp의 하루는 86400초
로 이루어져 있다.
/* Unix Timestamp -> Date */
const Unix_timestamp = (t: number) => { // t는 Timestamp를 통해서 받아온 값
const date = new Date(t * 1000);
const year = date.getFullYear();
const month = "0" + (date.getMonth() + 1);
const day = "0" + date.getDate();
return year + "-" + month.substr(-2) + "-" + day.substr(-2); // ex) 2023-01-31형식으로 되어있다.
};
Affirmation(자기 선언)
Date를 다루는게 생각보다 어려웠고, DB에는 내가 사용하던 형식이 아닌 다른 형식으로 저장되어 있었기 때문에 낯설었다. 근데 막상 사용해보니 Timestamp는 숫자로만 이루어져 있기 때문에 나중에 형식만 바꿔서 전날이나 다음날, 같은 것을 가져오기 쉽다고 생각이 들었다.