2014-07-09 3 views
0

따르면날짜() .setDate() 일치하지 않는 행동

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate

에 나는

var now = new Date(); 
now.setDate(0); 

이의 마지막 날에 지금을 을 변경하는 코드에서 해당하여 setDate()을 기대한다 지난달.

내가 같은 것을 할 수 있어야 의미

now.setDate(0).setDate(1) 

이전 달의 첫 번째 날의 날짜를 얻을 수 있습니다.

하지만 id는 그렇게 작동하지 않습니다.

var now = new Date(); 
console.log(now) 
// FF 24: Date {Wed Jul 09 2014 16:35:49 GMT+0100 (IST)} 

now.setDate(0); 
console.log(now) 
// FF 24: Date {Mon Jun 30 2014 16:35:49 GMT+0100 (IST)} 

그러나

var now = new Date().setDate(0); 
console.log(now) 
// 1404142784241 

질문 :

var now = new Date(); 
now.setDate(0); 

var now = new Date().setDate(0); 
사이의 차이점은 무엇입니까

답변

1

두 번째 예제에서는 의 반환 값이 .setDate()이고 날짜 자체는 아닙니다. .setDate() 함수는 업데이트 된 개체 값에 해당하는 타임 스탬프 값을 반환합니다.

var now = new Date(); 
now.setDate(0); 
console.log(now.getTime()); 
+0

ECMA 사양에서 setDate() 함수의 정의를 읽었으며 함수가 타임 스탬프를 반환합니다. 그러나 기능적 접근법을 깨뜨린 것은 사실이지만 (http://momentjs.com/의 훌륭한 라이브러리가있어 실제로 사용할 수있는 객체와 메소드를 제공 할 준비가되었습니다. – 108adams

관련 문제