Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
43 lines (31 loc) · 3.17 KB

File metadata and controls

43 lines (31 loc) · 3.17 KB
Copy raw file
Download raw file
Outline
Edit and raw actions

Javascript time format 변환하기

  • 조회 API를 만드는 중, response에 created_at 칼럼이 추가되었고, 정해진 시간 형식이 있었다! => 2023-01-15T13:10:38
  • 우선 DB에 저장되는 데이터의 형태(UTC 기준으로 저장하고 가져올 때 typeORM으로 시간차 보완) ㅇㅇㅇㅇㅇ

첫 번째 시도(실패).

  • TypeORM을 이용해 DB에 저장되는 포맷을 바꾸기

    • entity에 @transform 데코레이터를 이용해 포맷바꾸기(실패)

    • column의 type option에 timestamp without time zone, timestamptz 등 설정하기(실패)

      • Z로 표기되는 줄루시간을 없애고 싶어 이것저것 시도해보았지만, MySQL이 timestamp 외에는 옵션 지원하지 않음
    • 무엇보다 DB 저장 포맷 자체를 바꾸려고 하는 것은 좋지 못한 방법이었다.

      • 첫번째 이유) Date 형식으로 저장되고 있는데, 포맷을 바꾸려면 String 타입으로 변환해야하고 그렇게되면 Javascript에서 기본적으로 제공하는 시간 관련 기능들을 이용하지 못함
      • 두번째 이유) 만약 이후에 response 케이스가 추가되어 time format을 또 바꿔야한다면 매우 비효율적인 상황이 됨
      • 결론) DB에는 raw data 그대로 저장하고 상황에 맞게 가공해서 쓰자!

두 번째 시도(성공).

  • 코드 단에서 time format 가공하기

    • created_at: c.t_created_at.toString().split('.')[0](실패) 실패리스폰스

    • created_at: c.t_created_at.toISOString().split('.')[0](성공) 성공리스폰스

  • toString()toISOString() 은 어떤 차이가 있길래? 🧐

    • toString() 을 쓰면서 British Summer Time 형식으로 변환되었고 split('.') 메소드에 영향을 받지 않았음(time format에 .이 없음)
    • toISOString() 을 쓰면 ISO시간 형식의 문자열로 변환되고 split('.') 메소드로 줄루시간 제거 가능
  • javascript Date 객체에는 기본적으로 제공하는 7개의 날짜 지정 형식이 있음.

    • JavaScript에서 코드 한 줄로 날짜 형식 지정하기
      • toString() - **Fri Jul 02 2021 14:03:54 GMT+0100 (British Summer Time)**을 반환합니다
      • toDateString() - Fri Jul 02 2021을 반환합니다
      • toLocaleString() - 7/2/2021, 2:05:07 PM을 반환합니다
      • toLocaleDateString() - 7/2/2021을 반환합니다
      • toGMTString() - Fri, 02 Jul 2021 13:06:02 GMT을 반환합니다
      • toUTCString() - Fri, 02 Jul 2021 13:06:28 GMT을 반환합니다
      • toISOString() - 2021-07-02T13:06:53.422Z을 반환합니다
Morty Proxy This is a proxified and sanitized view of the page, visit original site.