2017-11-30 4 views
-1

사파리에서 날짜를 파싱 할 때 날짜는 시간대에 따라 다릅니다. 이 문제는 사파리 브라우저에서만 발생하지만 Chrome과 같은 다른 브라우저에서는 Firefox가 정상적으로 작동합니다.다른 시간대로 사파리의 날짜 구문 분석이 다릅니다

아래 사파리 및 크롬 브라우저의 콘솔 창에서 스크린 샷을 찾으십시오.

사파리 스크린 샷 :

Safari

크롬의 스크린 샷 :

enter image description here

친절이 문제에서 저를 얻기 위해, 여러분의 소중한 의견을 게시 할 수 있습니다.

참고 내 데이터 원본은 위에서 언급 한 것처럼 문자열 형식입니다.

+0

난 당신이 아마 여기 입증하는지에 대해 조금 불분명 해요. Safari에서 두 줄의 출력을 생성하는 입력이 하나 있습니다 ... ?! 동일한 날짜가 Chrome에서 두 번 파싱되므로 두 개의 매우 다른 날짜가 표시됩니다 ...? 나는 당신이이 결과에 어떻게 도달하고 왜 다른 하나가 더 정확한지 모릅니다. – deceze

+1

Safari가 ISO 8601 형식 데이터와 시간 문자열을 표준 시간대없이 잘못 구문 분석합니다. 로컬로 파싱되어야합니다. – RobG

+0

날짜는 브라우저에서 약간 임의적입니다. 그리고 지원은 끔찍합니다. 사파리와 IE는 정말 엉망입니다. 대신 momentjs를 사용해보세요. 놀랍도록 잘 작동합니다. https://momentjs.com/ –

답변

0

당신은 .toUTCString()를 사용하여이 문제를 해결 할 수 있습니다

var myDate = new Date("2016-11-01T00:00:00"); 
 
console.log(myDate.toUTCString());

+0

잘못된 구문을 "해결"하는 방법은 무엇입니까? 결과 시간 소인은 시간대가 +0000이 아닌 호스트의 원래 시간과 다른 시간을 나타냅니다. – RobG

관련 문제