[英]How can I validate if a date occurs between two dates with Jquery?
我想檢查一個日期是否發生在兩個日期之間。 如果此日期發生在這兩個日期之間,則函數應返回 true,否則應返回 false。
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
function dateCheck() {
var fDate,lDate,cDate;
fDate = jQuery.datepicker.formatDate('dd-mm-yy', new Date()); // firstdate
cDate = jQuery.datepicker.parseDate('dd-mm-yy',
jQuery('#challenge_date').val()); // date from form
lDate = jQuery.datepicker.formatDate('dd-mm-yy', new Date());
lDate.setDate(lDate.getDate() + 7); // lastdate
if((cDate <= lDate && cDate >= fDate)) {
alert("true");
return true;
}
alert("false");
return false;
}
</script>
<form action="#" method="post" onsubmit="return dateCheck()">
<input type="date" name="challenge_date" id="challenge_date">
<input type="submit" value="check">
</form>
誰能指出我在正確方向上推動我的錯誤?
您正在使用 html 本機日期輸入類型。 因此無需使用 jQuery datepicker API。 只需從輸入值創建日期對象並與其他日期對象進行比較。
function dateCheck() { var fDate,lDate,cDate; fDate = new Date(); // firstdate cDate = new Date($('#challenge_date').val()); // date from form lDate = new Date(); lDate.setDate(lDate.getDate() + 7); // lastdate if(Date.parse(cDate) <= Date.parse(lDate) && Date.parse(cDate) >= Date.parse(fDate)){ alert("true"); return true; } alert("false"); return false; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form action="#" method="post" onsubmit="return dateCheck()"> <input type="date" name="challenge_date" id="challenge_date"> <input type="submit" value="check"> </form>
日期函數不支持 dd/mm/yyyy。 所以試試這個
function dateCheck() {
var fDate,lDate,cDate;
fDate = jQuery.datepicker.formatDate('dd-mm-yy', new Date()); // firstdate
cDate = jQuery.datepicker.parseDate('dd-mm-yy', jQuery('#challenge_date').val()); // date from form
lDate = jQuery.datepicker.formatDate('dd-mm-yy', new Date());
var dateFrom = fDate.split("-");
var dateTo = lDate.split("-");
var dateCheck = cDate.split("-");
var from = new Date(dateFrom[2], parseInt(dateFrom[1])-1, dateFrom[0]); // -1 because months are from 0 to 11
var to = new Date(dateTo[2], parseInt(dateTo[1])-1, dateTo[0]);
var check = new Date(dateCheck[2], parseInt(dateCheck[1])-1, dateCheck[0]);
if((check <= to && check >= from)) {
alert("true");
return true;
}
alert("false");
return false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.