2010-04-13 3 views
22

내가이 기능/방법을 사용하려면 다음 함수, 내가 오류 dat1.getTime()는 함수가 아닙니다 얻을자바 스크립트 getTime()이 함수가 아닌 이유는 무엇입니까?

function datediff() 
{ 
var dat1 = document.getElementById('date1').value; 
alert(dat1);//i get 2010-04-01 
var dat2 = document.getElementById('date2').value; 
alert(dat2);// i get 2010-04-13 

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
var diffDays = Math.abs((dat1.getTime() - dat2.getTime())/(oneDay)); 
alert(diffDays); 
} 

....

답변

31

당신의 dat1dat2 변수는 단지 문자열이기 때문입니다.

당신은 항상 다음과 같은 기능을 사용하는 형식 들어, Date 개체를 가져을 구문 분석해야 다음 Date.parse(string) (또는 new Date(string)) 방법은구현에 의존하기 때문에

// parse a date in yyyy-mm-dd format 
function parseDate(input) { 
    var parts = input.match(/(\d+)/g); 
    // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]]) 
    return new Date(parts[0], parts[1]-1, parts[2]); // months are 0-based 
} 

을 나는이 기능을 사용하고, yyyy-MM-dd 형식은 최신 브라우저에서는 작동하지만 IE에서는 이 아니라이 아니므로 수동으로 수행하는 것이 더 좋습니다.

9

를 사용, 당신은 클래스 날짜의 인스턴스가 필요합니다.

이 방법은 항상 날짜 개체와 함께 사용됩니다.

아래 코드를 참조하십시오 :

var d = new Date(); 
d.getTime(); 

링크 : http://www.w3schools.com/jsref/jsref_getTime.asp

3

dat1 및 dat2는 JavaScript에서 문자열입니다. String 프로토 타입에는 getTime 함수가 없습니다. http://www.w3schools.com/jsref/jsref_parse.asp

당신은 다음과 같이 사용할 것이다 : 나는 당신이 다음 Date.parse() 함수를 원하는 생각

var date = Date.parse(dat1); 
나는 그것이 '해야한다는 말을 woud
+0

VAR 날짜 = 새로운 날짜 (다음 Date.parse (DAT1)); – Hexodus