【问题标题】:how can I check if a date is before a specific date with javascript [duplicate]如何使用javascript检查日期是否在特定日期之前[重复]
【发布时间】:2017-05-09 09:33:22
【问题描述】:
我是 javascript 新手,所以请耐心等待。我有一个 html 代码,其中有一个 html 日期输入。我想用 javascript 检查这个日期是否在特定日期之前。我怎样才能做到这一点?并且可以在用户提交表单之前完成检查吗?(我的意思是可以在用户选择日期时完成检查,而不是在他点击提交按钮之后,因为在日期输入之后,在表单结束之前还有更多输入)
【问题讨论】:
标签:
javascript
html
date
input
【解决方案1】:
很简单,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 方法,将实例转换为时间戳(精确到毫秒)。
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>