2017-10-22 1 views
0

나는 Date 자바 스크립트로 작업하고 이상한 문제에 직면 해있다.Javascript 날짜 작업 이상한

date1 = new Date(1970, 1, 1); 
date2 = new Date("1970-01-01T13:00:00.000Z"); 
console.log(date1.getYear()); //70 
console.log(date1.getMonth()); //1 
console.log(date1.getDay()); //0 expect 1 
console.log(date2.getYear()); //70 
console.log(date2.getMonth()); //0 expect 1 
console.log(date2.getDay()); //4 expect 1 

왜 이러한 결과가 발생 했습니까? 내가 무엇을 잘못하고있다 Date Object?
FIDDLE

는 UPDATE :

console.log(date1); 

이 결과를 나타낸다. new Date(year, month, date)

Date 1970-01-31T14:00:00.000Z 

답변

3

는, 달은 date1date2 다른 날짜 그래서 그렇게 1 월하지만 february 아니라, 기반 0입니다. 그런 다음 getDay 함수는 월요일부터 일요일에 해당하는 0에서 6을 반환합니다. 날짜를 원하면 getDate를 대신 사용해야합니다.

+0

맞습니다. 업데이트 질문에 대해 더 답변 해 주시겠습니까? –

+0

새로운 날짜는 현지 시간을 사용합니다. 따라서 1970-02-01을 가리키고있을 것입니다. 그러나 현지 시간은 GMT가 아니므로 1970-01-31 전날을 볼 수 있습니다. 내 컴퓨터에서는 GMT +1에 1970-02-01이 표시됩니다. Date 문서 및 Date.UTC 함수를 확인하십시오. 날짜는 매우 복잡합니다. 다음을 확인하는 것이 좋습니다. https://www.youtube.com/watch?v=-5wpm-gesOY –

+0

감사합니다. –