如何使用javascript检查日期是否在特定日期之前

时间:2017-05-09 09:33:22

标签: javascript html date input

我是javascript的新手,所以请耐心等待我。我有一个HTML代码,其中我有一个HTML日期输入。如果此日期在特定日期之前,我想查看javascript。我怎样才能实现这一目标?并且可以在用户提交表单之前完成检查吗?(我的意思是可以在用户选择日期之前完成检查,而不是在他按下提交按钮之后导致日期输入之后在表单结束之前有更多输入)

1 个答案:

答案 0 :(得分:0)

非常简单,Date实例可以直接比较。

$('.datepicker').datepicker({
    dateFormat: 'dd-mm-yy',
    numberOfMonths: 1,
    onSelect: function(selected,evnt) {
         compareTime(selected, time_you_want_to_compare);
    }
});

function compareTime(time1, time2) {
    return new Date(time1) > new Date(time2); // true if time1 is later
}

当您比较两个Date实例或相互减去时,valueOf方法将在内部调用,将实例转换为时间戳(毫秒精确)。< / p>

function dateCompare(date1, date2){
    return new Date(date2) > new Date(date1);
}

// Demo (uses jQuery)

$("tbody tr").each(function(){
    $tr = $(this);
    $td = $tr.children('td');
    date1 = $td.eq(0).text();
    date2 = $td.eq(1).text();
    result = dateCompare(date1,date2);
    $td.eq(2).text(result);
    if($td.eq(2).text() == $td.eq(3).text()) $tr.css('background','green');
    else $tr.css('background','red');
});
table{
    border-collapse: collapse;
}
td{
    padding: 5px;
    border: 1px solid #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
    <thead>
        <tr>
            <td>date1</td>
            <td>date2</td>
            <td>Result</td>
            <td>Expected</td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>01/12/2014</td>
            <td>02/24/2014</td>
            <td></td>
            <td>true</td>
        </tr>
        <tr>
            <td>01/12/2013</td>
            <td>02/24/2012</td>
            <td></td>
            <td>false</td>
        </tr>
        <tr>
            <td>01/12/2014</td>
            <td>02/24/2018</td>
            <td></td>
            <td>true</td>
        </tr>
        <tr>
            <td>01/12/2015</td>
            <td>02/24/2011</td>
            <td></td>
            <td>false</td>
        </tr>
    </tbody>
</table>