javascript - Comparing date fields in case of leap years -
i want compare 2 date fields.. have gotten pretty close , works fine..
but problem comes when "todate" field
leap year>= "fromdate" for eg:
from date= 29/02/1996 date= 29/02/1996 date= 29/02/1992 date= 29/02/1995 the code works fine..
but if
from date= 29/03/1996 date= 29/02/1996 the code fails...
this code
function isdate(value) { var fromdate = document.getelementbyid("fromdate").value var todate= document.getelementbyid("todate").value var dateregex = null; dateregex = new regexp(/^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g); if (dateregex.test(fromdate)){ } else{ alert("invalid date"); return false; } dateregex = new regexp(/^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g); if(dateregex.test(todate)) { } else{ alert("invalid date"); return false; } var stdate = new date(fromdate); var endate = new date(todate); var compdate = endate - stdate; if(compdate > 0) return true; else { alert("please enter correct date "); return false; } /**/ } how make work leap years...where have make changes in code.
this excelent jquery plugin want: http://momentjs.com/
Comments
Post a Comment