2012-07-19 3 views
4

다음 코드는 Firefox에서 1247547600000을 생성하는 동안 Chrome에 NaN 출력을 출력합니다.Firefox가 수행하는 동안 Chrome이 24:00:00을 인식하지 못함

var str = "2009/07/13 24:00:00-0500"; 
document.write(Date.parse(str)); 

이 부분은 fiddle입니다.

해결 방법? 감사합니다.

편집 : 다른 회사의 데이터가 있습니다. 생성하는 데이터를 변경할 수 없습니다. 그럼 여기서 제안은 무엇입니까?

데이터가 생성 :

{"day":"2009-07-13", "work":["11:16:35-12:03:12", "12:32:48-13:26:28", "13:39:09-13:39:12", "13:41:03-13:41:05", "14:18:09-24:00:00"]}, 
{"day":"2009-07-14", "work":["00:00:00-07:22:25", "07:22:25-07:22:28", "10:10:04-10:10:31", "10:10:32-10:15:33", "10:18:07-10:21:19", "11:04:49-11:06:15", "11:12:50-11:19:05", "11:19:11-11:19:19", "11:45:50-11:51:42", "11:51:43-11:53:55", "14:03:13-14:13:04", "14:23:55-14:31:28", "14:31:28-14:38:00", "14:38:00-14:49:04", "16:34:56-16:44:33", "16:46:37-16:48:10", "16:48:11-24:00:00"]} 
+2

바이올린뿐만 아니라 여기에 코드를 게시하십시오. – epascarello

+9

글쎄, 기술적으로 24 시가 없습니다 - 다음 날 0시입니다. – Christoph

+0

가능한 복제본 [Ecmascript 5 Date.parse for ISO 8601 테스트 사례] (http://stackoverflow.com/questions/10005374/ecmascript-5-date-parse-for-iso-8601-test-cases) – epascarello

답변

5

당신은 잘못된 시간을 구문 분석 브라우저를 요구하고있다. 24:00은 유효하지 않습니다. 아마도 다음날 0시를 의미 할 것입니다. Chrome에서 거부했습니다. Firefox는 단순히 용서하는 것입니다.

하루 24 시간을 고려하십시오. 첫 번째 시간이 00이면 마지막 시간은 23입니다.

+0

사실 나는 실제로 다른 회사의 데이터를 얻었고 생성 된 데이터를 변경할 수없는 경우 제안 사항은 무엇입니까? – sozhen

+2

나쁜 데이터를 수정하는 방법에 대해 회사에 이야기하고, 정규식을 사용하여 24:00:00에서 00:00:00으로 변환하는 것을 금지하고 있지만 문제의 일부만 수정하면 comany는 그 다음날이 될 수 있었습니까? ? 그렇다면 당신은 또한 하루를 증가시켜야합니다. 그렇지 않다면 그 데이터는 정말로 혼란 스럽습니다. – JaredMcAteer

+0

데이터를 제 질문에 넣었습니다. 24:00:00은 하루의 증가량이 아니라는 의미입니다. 00:00:00 만 다음 날입니다. – sozhen

1

크롬이 맞습니다. 24:00은 존재하지 않습니다. 그 날은 23:59:59에 끝나고 그 다음날은 00:00:00에 시작됩니다. 코드 은 24:00:00으로 날짜를 생성하지 않아야합니다. 브라우저가 어떻게 해석하는지 또는 현재, 미래에도 작동 여부를 보장 할 수 없기 때문입니다.

+0

우리가 얻은 데이터는 다른 회사의 데이터이므로이 데이터로 차트를 생성해야합니다. 그래서 데이터를 파싱하려고하면 오류가 발생합니다. – sozhen

+0

그럼 내 친구에게 문제가 생겼어. 당신이 가지고있는 유일한 해결책은 날짜 문자열을 확인하고 24:00을 찾은 곳에서 변경하는 것입니다 ... – devundef

+0

감사합니다. 그러나 유닉스 타임 스탬프와 관련하여 차이가 있습니까?따라서 24:00:00에서 23:59:59로 수동으로 데이터를 변경하면 모든 데이터가 올바르게 표시되도록 1 초 동안 유닉스 타임 스탬프를 추가해야합니까? 그게 맞습니까? – sozhen

6

이 문제가 발생하여이를 조사했습니다. 위키 백과에 따르면

: ( http://en.wikipedia.org/wiki/ISO_8601 참조)

자정 특별한 경우 모두 "0시"와 "24:00" 이라 할 수있다. 표기 "00:00"은 달력의 시작 부분에 사용되며 일이며 자주 사용됩니다. 하루가 끝나면 "24:00"을 사용하십시오. "2007-04-05T24 : 00"은 "2007-04-06T00 : 00" 과 같은 순간입니다 (아래에 날짜와 시간을 결합한 표현 참조).

Chrome이 잘못되었습니다.

관련 문제