2012-08-09 2 views
4

누구나 설명 할 수 있습니까? javascript Date.parse와 Date.UTC가 다른 결과를 나타냅니다

d = Date.parse('8/15/2012 '+'11:59:45 AM'); 
alert(d); 
alert(Date.UTC(2012, 7, 15, 11, 59, 45)); 

+1

"Date.parse"(좋은 생각은 아닙니다)를 사용하려면 적어도 [ES5에 지정된] 형식을 사용하십시오 (http://es5.github.com/#x15.9.1.15) . 그래도 값을 사용하고 Date 생성자를 호출하는 것이 좋습니다. – RobG

+0

[Date Object and UTC Method] 가능한 중복 (0120-556-2111) – rene

답변

7

다음 Date.parse가 지정되지 않은 경우 현지 시간으로 가정합니다.

그러나 UTC는 분명히 UTC입니다.

예를 들어, 컴퓨터는 UTC -5 (실제로 시카고 CDT)이므로 두 개의 시간 소인은 5 시간 동안 나옵니다.

Date.parse('8/15/2012 '+'11:59:45 AM UTC'); //1345031985000 
Date.UTC(2012, 7, 15, 11, 59, 45); //1345031985000 
+0

설명하는 항목! – Yang

-1

내가 개월의 차이를 가정합니다 귀하의 질문에 오타가 있었다 : 당신이 UTC를 지정하면

당신은 같은 일을 얻을 것이다.

다음 Date.parse 제공된 날짜와 자정 (1) 1970 년 1 월

중 Date.UTC의 차이를 반환 날짜와 자정 1970년 1월 1일 GMT의 차이를 반환합니다.

표준 시간대를 GMT (UTC)로 설정하면 두 호출에서 동일한 값이 반환 될 것입니다.

+0

달은 다릅니다. 'UTC'와 다른'Date' 메쏘드는 0을 기준으로 한 달을 사용하지만, 형식화 된 날짜 문자열은 사용하지 않습니다. – nnnnnn

+1

구문 분석 및 UTC는 1970 년 1 월 1 일 UTC에 상대적인 타임 스탬프를 반환합니다. 차이점은 타임 스탬프의 기준점이 아니라 제공된 날짜를 해석하는 방법입니다. parse는 UTC가 UTC를 사용하는 반면, 달리 언급되지 않는 한 로컬 시간을 가정합니다. 또한 개월은 0으로 인덱싱되므로 8 월의 7은 정확합니다. – Corbin

+0

설명 주셔서 감사합니다. – Euric

관련 문제