2008-10-21 4 views
194

'+ 새 Date'에서 할 무엇을 몇 places더하기 기호 난에 본 적이

function fn() { 
    return +new Date; 
} 

그리고 나는 날짜 객체가 아닌 타임 스탬프를 반환하는 것을 볼 수 있지만, 내가 할 수있는 더하기 기호가 무엇을하고 있는지에 대한 문서를 찾을 수 없습니다.

누구든지 설명 할 수 있습니까?

답변

233
+0

좋은 물건 - "Date 유형의 값은 valueOf를 통해 해당 숫자 값으로 변환됩니다()), 이는 UNIX 신기원 이후의 밀리 초 수입니다. " – Kon

+56

놀랍지 만 10 년 이상 동안 자바 스크립트를 사용할 수있는 방법은 놀랍지 만 ... 이와 같은 너겟은 여전히 ​​알지 못했다. – roufamatic

+3

그러나 왜 당신은 date 객체에 정의 된'getTime' 메소드를 사용하지 않을까요?! – tkone

-2

이 수행 정확히 같은 일이 같은 :

 
function(){ return 0+new Date; } 
같은 결과 갖는다

:

참조
function(){ return Number(new Date); } 

: http://xkr.us/articles/javascript/unary-add/

과의 MDN 다음 + 단항 조작

 
function(){ return new Date().getTime(); } 
+11

Nope on 0 + new Date.처음에는 날짜를 문자열로 변환 한 다음 "0"을 앞에 붙입니다 (예 : "0Tue Oct 21 2008 20:38:05 GMT-0400"); –

+2

1 * 새로운 날짜 일 것이지만 1 + 새로운 날짜 -> 문자열 –

+0

나중에 새로운 날짜/1에 대해서도 마찬가지입니다. –

5

여기에 "단항 추가"연산자에 관한 specification이 있습니다. ... 희망은 도움이

1

자바 스크립트 날짜는 문자열로 기록 될 수 :

목 2015년 9월 10일 12시 02분 54초 (그리니치 표준시) + 0530 (IST)

또는 숫자로

:

숫자로 쓰여진 날짜는 1970 년 1 월 1 일 00:00:00 이후의 밀리 초 수를 지정합니다.

질문에 올 때 할당 연산자 '='뒤에 '+'를 추가하여 Date를 동일한 숫자 값으로 변환합니다.

숫자 (new Date())와 같은 Number() 함수를 사용하여 동일한 결과를 얻을 수 있습니다.

var date = +new Date(); //same as 'var date =number(new Date());' 
1

그것은 당신이 +new Date()를 호출 할 때, 우리가 toString()

에서 문자열을 얻을처럼 valueOf()를 사용하여 해당 개체의 숫자 값을 얻기 위해 시도 연산자와도 명시 적 숫자 변환에 사용을 추가 단항 입니다
new Date().valueOf() == (+new Date) // true 
관련 문제