2012-03-22 3 views
1

Firefox에서 다음 코드의 마지막 로그가 작동하지 않습니다. 왜?문자열의 문맥에서 새로운 날짜가 Firefox에서 작동하지 않습니다.

(function() { 

    String.prototype.toDate = function() { 
     return new Date(this); 
    }; 

    console.log(Date.parse("2012-01-31")); 
    console.log(new Date("2012-01-31")); 
    console.log("2012-01-31".toDate()); 

})(); 

브라우저에서이를 테스트하려면 위의 스 니펫을 파일에 넣고 다음 HTML을 사용하십시오.

<!DOCTYPE html> 
<body> 
    <script src="wtf.js"></script> 
</body> 

NodeJS (v0.4.12) :

1327932000000 
Mon, 30 Jan 2012 14:00:00 GMT 
Mon, 30 Jan 2012 14:00:00 GMT 

크롬 (17.0.963.79) :

1327968000000 
Tue Jan 31 2012 10:00:00 GMT+1000 (EST) 
Tue Jan 31 2012 10:00:00 GMT+1000 (EST) 

파이어 폭스 (10.0) : 파이어 폭스의에서

1327968000000 
Date {Tue Jan 31 2012 10:00:00 GMT+1000 (EST)} 
Date {Invalid Date} 

답변

0

this String.prototype이 참조되지 않는 것 같습니다. 그 문자열을 문자열로. 귀하의 방법에 추가하는 경우 :

String.prototype.toDate = function() { 
     return new Date(String(this)); 
    }; 

괜찮아요.

+0

흥미 롭습니다. 'new String (this)'는 작동하지 않지만'String (this)'와'this.toString()'이 작동합니다. – dteoh

+0

'('2012-01-31'). toDate()'도 사용할 수 있어야하지만 지금은 테스트 할 수 없습니다. – RobG

관련 문제