[TIL] toISOString()

oaksusu·2024년 3월 1일
0

TIL

목록 보기
6/36
post-thumbnail

0. 주제 선정하게 된 배경 :

toISOString 메서드를 사용할 경우 한국시간과 차이가 나고,
같은 날짜여도 toISOString()을 사용하면 toDateString()와는 다른 값을 반환하는 등
원하는 날짜 데이터를 만들고자 할 때 여러 난관들이 꼬리에 꼬리를 물어 나타나다보니
한번에 문제를 해결하는데 어려움을 겪음

1. 제대로 알고 넘어가기 :

1-1. toISOString()

표준시가 영국이기 때문에 9시간 차이가 나는 값이 반환되므로,
이 메서드로 한국 시간을 사용하기 위해서는 차이값을 계산해줘야함

const now = new Date();
now.toISOString() // '2024-03-01T14:45:27.374Z'

[참고] getTimezoneOffset은 분 단위로 반환됨!

const offset = new Date().getTimezoneOffset() * 60000;

const now = new Date(Date.now() - offset);

1-2. toDateString() / toLocaleDateString() / .toLocaleString('ko-KR')

const now = new Date();

now.toDateString(); // 'Fri Mar 01 2024'

now.toLocaleDateString() // '2024. 3. 1.'

now.toLocaleString('ko-KR'); // '2024. 3. 1. 오후 11:45:27'

1-3. 날짜 데이터 형식

문자열 형식 vs ISO 8601 형식의 날짜 문자열

  1. 문자열 형식 : "Wed Mar 06 2024"
  2. ISO 8601 형식의 날짜 문자열 : "2024-03-06"

2. 적용해보기

데이터에서 불러오는 값은 toISOString() 메서드를 사용했고,
내가 작업한 날짜는 toDateString() 메서드를 사용함으로써 시간차이가 발생하여
날짜 비교시 제대로 비교하지 못하는 경우가 발생했고 이 문제를 해결하기 위해서
내가 작업한 부분도 toISOString()를 사용함으로써 날짜 비교가 올바르게 적용이 되게 함

커밋 내역 : 1376d7c7c91876f1fd901c759bde3d9df1bc2c33

profile
삐약

0개의 댓글