2014-10-09 2 views
2

10/9/2014 형식의 날짜를 Google API에 전달해야하지만 IE에서 을 사용할 수 없습니다. IE는 ?10?/?9?/?2014으로 바뀌므로 IE는 다른 방식으로 인코딩하기를 좋아합니다. 모든 브라우저에서 API를 통해 깨끗한이 형식으로 날짜를 가져 오는 또 다른 간단한 방법이 있습니까?IE에서 toLocaleDateString()을 좋아하지 않습니다.

+0

고마워요. 저도 그렇게 비슷한 문제를 겪었고 사람들은 당신이 아니라고 말합니다. 'toLocale' 함수를 UI에 표시하는 것 이외의 다른 것에 사용하도록되어 있습니다. 하지만 그것은 내 API에서이 형식을 사용해야 할 때가 많아서 어리 석다. –

+0

날짜 원형을 확장하는 자체 서식 지정 함수를 작성하기 만하면됩니다. IE 11에서 작동하지 않는 경우 IE의 99 %가 다른 브라우저와 마찬가지로 엄격한 업데이트 일정에 있지 않기 때문에 몇 년 동안이 버그를 볼 수 있습니다. 구체화에 따라 – user2867288

+0

에 따르면 toLocaleXXX()는 구현의 변덕에 따라 완전히 임의적 일 수 있으며 JS는 로케일 버전을 구문 분석하여 사양을 준수하는 방법을 알 필요조차 없습니다 ... – dandavis

답변

2

나는이 문제를 잘 알고 있습니다. IE11 (IE11에서 시작하기 시작한 것)은 toLocaleDateString을 사용할 때 유니 코드 문자 \ u200E (왼쪽에서 오른쪽으로 표시)를 사용하고있었습니다. 나는 이것이 버그와 바람직하지 않은 행동으로 간주 할 것이고, 그런대로 나는 마이크로 소프트 커넥트 (Microsoft Connect) 티켓을 제출했다. 현재 티켓은 여전히 ​​사용 중입니다. 마이크로 소프트가 기대했던대로 동작하도록 만들기를 희망합니다. 티켓

이 당신의 LocaleDateString를 소독하고

행동에 도착해야 다음

datevar.toLocaleDateString().replace(/[\u200E]/g, "") 

의 임시 해결 방법이 있습니다 here을 발견 할 수 있도록 나타냅니다 here을, 질문과 관련된있다 주요 문제는 toLocaleDateString에서 반환 된 문자열을 파싱 할 수있는 날짜로 예상된다는 것입니다. 그것은 의도되지 않은 것입니다. IMO 내가 있어야한다고 생각하고, IE11은 이상한 것 같습니다. (다른 브라우저는하지 않습니다.)

+0

이 해결 방법은 수정 프로그램을 찾는 사람이라면 누구나 완벽하게 작동합니다. –

+0

고전적인 Microsoft ... 이미 로그인 한 상태 일지라도 "의견을 남기려면 로그인하십시오"라는 메시지가 표시되어 의견을 말할 수 없습니다 !!! : SSSSSSS –

관련 문제