2014-05-19 4 views
0

나는 체크 인과 체크 아웃 날짜로 구성된 간단한 양식이 있습니다. 사용자 입력 및 표시에 따라 날짜 차이를 계산해야합니다. 내 코드는 다음과 같습니다. 두 텍스트 입력 간의 날짜 차이를 계산하는 방법은 무엇입니까?

<tr> 
<td class="searchFormSpace">Check in</td> 
<td width="10px"></td> 
<td><input name="checkinText" type="text" class="date" id="fromDatePicker" type="text" value="Select date" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Select date';}"></td> 

<td width="20px"></td> 
<td class="searchFormSpace">Check out</td> 
<td width="10px"></td> 
<td><input name="checkoutText" type="text" class="date" id="toDatePicker" type="text" value="Select date" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Select date';} " onchange=""></td> 

<td width="20px"></td> 
<td>Nights</td> 
<td width="10px"></td> 
<td><input style="width: 30px" type="text" name="noOfNightsText" id="noOfNightsText" ></td> 

이 어떻게 할까?

이것은 내가 뭘하려 :

function dateDiff() { 
try { 
    var d2=document.getElementById("toDatePicker").value; 
    var d1=document.getElementById("fromDatePicker").value; 


    alert(d2); 


    var t2 = d2.value.getTime(); 
    var t1 = d1.value.getTime(); 

    alert(parseInt((t2-t1)/(24*3600*1000))); 
} 
catch(ex) { 
    alert(ex); 
} 

}

그러나 그것은 작동하지 않았다.

+1

날짜 형식은 무엇입니까? –

+1

우리는 당신이 마주 치게되는 문제를 찾아내는 것을 돕기 위해 여기에 있습니다. 당신이 가진 질문을 해결하지 못합니다. 먼저 뭔가를 시도해보고 문제가 해결되지 않으면 시도한 것을 알려주십시오. 그럼 우리가 도울 수있어! –

+0

입력 값을 전달하는 javascript Date 객체를 만들 수 있습니다 ('var date1 = new Date (...);'). 그리고 나서 Date 객체를 사용하여 계산합니다. –

답변

1

두 개의 Date 객체 (JavaScript 객체)가 있다고 가정하면 밀리 초 단위로 차이를 가져올 수 있습니다.

사용중인 datepicker의 출력과 JavaScript Date 클래스 생성자 간의 형식 호환성을 확인해야합니다.

아래의 코드를 참조하십시오 : 내가 여기 요소의 value 속성이 문자열임을 발생하는 문제를 생각

var date1 = new Date(document.getElementById("fromDatePicker").value); 
var date2 = new Date(document.getElementById("toDatePicker").value); 

var difference = date2 - date1; 

var days = difference/(24*3600*1000); 
0

. 먼저 구문 분석하여 Date 객체로 변환해야합니다. new Date(document.getElementById("toDatePicker").value);

function dateDiff() { 
    var d2=document.getElementById("toDatePicker").value; 
    var d1=document.getElementById("fromDatePicker").value; 

    var t2 = new Date(d2); 
    var t1 = new Date(d1); 

    alert((t2-t1)/(24*3600*1000)); 
    // You should get the number of days in between in here. 

} 
관련 문제