检查Jquery是否在两个日期之间发生日期

时间:2018-01-04 08:35:25

标签: javascript 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>

任何人都可以指出我的错误,让我朝正确的方向努力吗?

2 个答案:

答案 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>