2012-03-28 2 views
1

내가 누락되었지만 온라인에서 힌트를 찾을 수 없습니다. Javascript의 getTime() 함수를 사용할 때 1970 년, 01, 01, 0, 0, 0, 0, 즉 1970 년 한밤중이지만 1969, 12, 01, 1, 0, 0, 0으로 계산됩니다.Javascript의 getTime() 함수가 잘못된 값을 표시합니까?

나는 다음과 같은 설정 : 내가 공을 가야 내 마음의 생각과

var d = new Date(1970, 01, 01, 0, 0, 0, 0); 
alert(d.getTime()); 

(시간은 통과하지 않기 때문에). 내가 설정 한 경우하지만 2,674,800,000 밀리 초

를 얻을 :

var d = new Date(1969, 12, 01, 1, 0, 0, 0); 
alert(d.getTime()); 

나는 밀리 초

0 내가 W3C 사이트에서도 기능을 함께 연주하고 그 결과가 동일 얻을. 나는 약에 해당 밀리 초를 얻을

var Now = new Date(); 
var Begin = new Date (Now.getFullYear(), 01, 01); 
var dif = Now.getTime() - Begin.getTime(); 
alert(dif); 

: - 나는 두 날짜 사이의 차이를 계산하면

또한 올해 지금 시작, 그것은 올바른 값을 반환하지 않습니다. 59 일

저는 아직 프로그래밍 유아로 뭔가를 보지 못했습니다. 의견을 보내 주시면 감사하겠습니다.

답변

2

두 가지 버그로 인해 오류가 발생했습니다. 첫째, 월은 0으로 인덱싱되므로 1 월은 0에 해당합니다 (2010 년 1 월 14 일 예제에서는 here에서 알 수 있듯이). 둘째, 브라우저가 특정 시간으로 설정되어 오류가 발생합니다. 나는 태평양 표준시에있어, 그래서 여기에 내가 무엇을 얻을 수 있습니다.

a = new Date("January 1, 1970") 
    Thu Jan 01 1970 00:00:00 GMT-0800 (PST) 
a = new Date("January 1, 1970 GMT") 
    Wed Dec 31 1969 16:00:00 GMT-0800 (PST) 
a.getTime() 
    0 
+0

신속하고 건설적인 답장을 보내 주셔서 감사합니다. 나는 그것이 매우 기본적인 것이어야한다는 것을 알았다. 나는 한 시간 차이가 시간대 때문이라고 느꼈지만 이름이나 번호로 월을 선언 할 때의 차이는 나에게 일어나지 않았다. 힘내 친구 야 – vucibatina