2014-02-19 3 views
2

누구에게도 2014 년 8 월 19 일 JavaScript가 2014 년 8 월 18 일에 반환되는 이유를 알고 있습니까?자바 스크립트 2014-08-19

> new Date(2014, 9, 18) 
Sat Oct 18 2014 00:00:00 GMT-0300 (BRT) 
> new Date(2014, 9, 19) 
Sat Oct 18 2014 23:00:00 GMT-0300 (BRT) 
> new Date(2014, 9, 20) 
Mon Oct 20 2014 00:00:00 GMT-0200 (BRST) 
+0

잘 작동합니다! http://jsfiddle.net/jy5Hb/ – Unknown

+0

왜 월 9가 10 월을 반환하는지 묻지 않는 한 문제가 보이지 않습니다. 월은 0 = 1 월부터 시작하기 때문입니다. –

+0

BRT vs BRST와 관련이 있습니까? – j08691

답변

1

Date(2014, 9, 19) 기술적 does not exist in parts of Brazil. 첫째, Date()은 날짜가 아니라 시간을 반환합니다. 시간은 명시 적으로 전달되지 않았기 때문에 자정을 기본값으로 사용합니다. 그러나 2014 년 10 월 19 일 자정을 의미하는 낮 시간 절약은 건너 뜁니다. (Oct 18 23:59:59 다음에 10 월 19 일이 붙습니다. 1:00:00)

JavaScript는 존재하지 않는 날짜 - 시간을 실제로 존재하는 유효한 날짜 - 시간으로 변환하려고했습니다. 날짜에 관심이있는 경우 다음과 같이 시간 매개 변수를 명시 적으로 전달하는 것이 좋습니다.

> new Date(2014, 9, 19, 12) 
+0

예. 이것은 한 시간 만에 시계가 늦어지는 브라질의 여름 일정입니다. 19/08의 0 시간은 18/08의 23:00입니다. 감사합니다. –

관련 문제