safari and chrome datetime 처리 방법

앵귤러 datetime pipe가 크롬에서는 문제가 없는데 사파리에서 에러가 나서 확인해봄

chrome

서버에서 2020-01-01 00:00:00 가 오면 로컬 시간으로 보여줌 문제는 서버가 utc/gmt일 경우 로컬 시간이랑 안맞음.

safari

서버에서 2020-01-01 00:00:00 가 오면 utc로 가정하고 로컬 시간으로 변경해서 보여줌.

둘다 같은 값을 사용하기 위한 처리 방법

서버에서 2020-01-01T00:00:00+00:00 이것처럼 타임존을 붙여서 보내면 크롬/사파리가 같은 날/시간으로 인식을 한다.

C#에서 다음처럼 처리

Created.ToString("yyyy-MM-ddTHH:mm:sszzz")
Created.ToString("yyyy-MM-ddTHH:mm:ss\"Z\"")//timezone +00:00 대신 Z라는 문자로 대치도 가능

이제 두개의 브라우저가 모두 같은 화면을 랜더링 한다.

서버에 모든 시간을 Utc로 사용하고 위 방법을 이용하면 문제없이 대부분의 문제가 없어질거같다.

주의

2020-01-01T00:00:00+00:00는 되지만 2020-01-01 00:00:00+00:00는 사파리에서 에러가 난다.

추가

mozila site에 보면 타임존 00:00(UTC/GMT) 를 대표하는 문자로 Z를 사용하기도 한다.

마찬가지로

2020-01-01T00:00:00Z는 되지만 2020-01-01 00:00:00Z는 사파리에서 에러가 난다.

teamsmiley's profile image

teamsmiley

2020-09-02 00:00

Read more posts by this author