2014-09-11 2 views
0

사용자가 90 일을 초과해서 선택해서는 안되므로 fromDate와 toDate 사이의 일 수를 얻으려고했습니다. 나는 날짜 달력을 얻기 위해 도장을 사용하고 있습니다. 아래 코드를 시도했지만 예상대로 출력되지 않았습니다, 제안하십시오.날짜 범위 선택

<script> 
function parseDate(str) { 
    var mdy = str.split('-') 
    return new Date(mdy[2], mdy[0]-1, mdy[1]); 
} 

function daydiff(first, second) { 
    return (second-first)/(1000*60*60*24); 
} 

function daysDifference(){ 
    var fromDate = document.getElementById("fromDate").value; 
    var toDate = document.getElementById("toDate").value; 
    alert(fromDate); 
alert("days difference" + daydiff(parseDate(fromDate),parseDate(toDate))); 
} 
</script> 
<form id="myform" name="myform" action="checkData.htm"> 


    From Date:<input type="text" name="fromDate" id="fromDate" value="" data-dojo-type="dijit/form/DateTextBox" required="true" constraints="{ datePattern: 'dd-MM-yyyy'}" /> </td> 
    To Date:<input type="text" name="toDate" id="toDate" value="" data-dojo-type="dijit/form/DateTextBox" required="true" constraints="{ datePattern: 'dd-MM-yyyy'}"/> </td> 
    <input type="submit" value="submit" onclick="daysDifference();"/> 

</form> 

나는 90 일 사이의 기간을 선택하도록 사용자를 제한하려면 어떻게해야합니까?

답변

2

이 같은 시도 할 수 있습니다 :

var fromDate = new Date("7/11/2014"); 
var toDate = new Date("12/12/2015"); 
var timeDiff = Math.abs(toDate.getTime() - fromDate.getTime()); 
var diffDays = Math.ceil(timeDiff/(1000 * 3600 * 24)); 
if(diffDays > '90') 
alert("Select a date range in 90 dates from toDate"); 

JSFIDDLE DEMO

+0

@scrit가 : - 당신은 JSFiddle에서 저를 보여줄 수 있습니까? 나는 JSFiddle에 코드를 추가했다. 나를 찾아 볼 수 있도록 코드를 보여주세요. –

+0

미안 해요 역순으로 시도 했어요. MM/dd/yyyy로 바뀌었고 기대했던 결과를 얻었습니다. +1 감사. – scrit

+0

@scrit : - 당신은 환영합니다 :) –

0

Date.parse() 메서드는 1970 년 1 월 1 일부터 반환되는 밀리 초 수를 반환합니다. 각 날짜마다 구문 분석을 실행 한 다음 뺄셈을 통해 값의 차이를 얻을 수 있습니다. 그런 다음 밀리 초 단위로 시간을 일로 변환해야합니다.