많은 "날짜"를 처리해야하는 프로젝트를 진행하고 있습니다. 가끔 자바 스크립트는 다른 브라우저에서 다르게 동작하는 것을 알 수 :자바 스크립트가 다른 브라우저에서 다르게 작동합니다.
코드 :
new Date("Mar 30, 2017".replace(',', '').replace(/ /g, '/'))
내가 날짜를 만들 replace
를 사용하지 않아도 알고 있지만,이 코드는 나에게 크롬과 사파리에서 흥미로운 다른 결과를 제공합니다 .
나는 실행하는 동안 :
는"Mar 30, 2017".replace(',', '').replace(/ /g, '/')
크롬과 사파리 것 모두 저를 제공합니다 "Mar/30/2017"
. 나는 Date
객체로 결과를 설정하려고 할 때, 흥미로운 결과가 될 것입니다 : 이미 두 브라우저의 자바 스크립트 버전을 확인하신 후, 그들은 동일한 버전 (1.7)을 사용하는
Chrome: Thu Mar 30 2017 00:00:00 GMT-0700 (PDT)
Firefox: Date 2017-03-30T07:00:00.000Z
Safari: Invalid Date
. 누구든지 Chrome이 Safari와 다르게 동작하는 이유를 설명 할 수 있습니까?
업데이트 "Mar/30/2017"
은 유효한 날짜 형식이 아닙니다. 하지만 내 질문은 다른 브라우저에서 javacript가 다르게 동작하는 이유 그 답변에 대한 내 날짜 형식에 대한 불평. 대답하기 전에 질문을 읽어보십시오. 나는 @ Felix Kling의 대답을 취할 것이고, 모든 대답에 모두 감사 할 것이다.
예, 비표준 날짜 형식을'new Date()'에 전달하면 다양한 결과가 나타납니다. 가능한 경우 [표준 형식] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) 만 전달하거나 문자열을 모두 전달하지 마십시오. – JJJ
Safari의 JS 구현에서 이해할 수 없을 수도 있습니다. 왜 "Mar/30/2017"로 날짜를 만들어야합니다. 첫 번째 방법은 잘 작동해야합니다. [w3 date docs] (https://www.w3schools.com) /jsref/jsref_obj_date.asp) –
''Mar/30/2017 ''은 내가 아는 사양에 따라 유효한 날짜 형식이 아니기 때문에. 브라우저는 여기에서 볼 수 있듯이 원하는 방식으로 해석 할 수도 있고 전혀 해석하지 않을 수도 있습니다. – Timo