我想检查两个日期之间是否有日期。 如果此日期发生在这两个日期之间,则函数应返回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>
任何人都可以指出我的错误,让我朝正确的方向努力吗?
答案 0 :(得分:0)
日期功能不支持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;
}
答案 1 :(得分:0)
您正在使用html本机日期输入类型。因此,不需要使用jQuery datepicker API。只需从输入值创建日期对象,并与其他Date对象进行比较。
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>