我有一个数据表,其中一列用于"Available Date "。我只想显示Available Date在未来30天内的行。
下面是一个简化的表格示例:
<table id="properties">
<tr>
<td>Property 1</td>
<td class="availability">4/11/2016</td>
</tr>
<tr>
<td>Property 2</td>
<td class="availability">9/29/2015</td>
</tr>
</table>
我不能确切地弄清楚如何将30天添加到日期中,所以我可以将当前日期与每个表行的日期进行比较,除了可能使用date .parse()之类的东西转换为毫秒。对于jQuery和JavaScript,我还是个新手,如果你有什么见解,我将不胜感激。
这是如何添加30天的日期:
function addDays(date, days) {
var result = new Date(date);
result.setDate(date.getDate() + days);
return result;
}
请参阅AnthonyWJones的回答:https://stackoverflow.com/a/563442/617027
…和这里的小提琴http://jsfiddle.net/sparebytes/XrWzq/为什么使用简单的new Date()
会导致跨月、跨年边界和夏令时的问题。
你可以添加30天的日期对象,然后比较日期在你的html
compareDate.setDate(compareDate.getDate() + 30);
var compareDate = new Date();
compareDate.setDate(compareDate.getDate() + 30);
var tdDate;
$('tr').each(function(){
tdDate = (new Date($(this).find('td.availability').text()));
tdDate = ((tdDate-compareDate)/1000/60/60/24/30);
if(tdDate>0 && tdDate<30){
$(this).show();
}else $(this).hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="properties">
<tr>
<td>Property 1</td>
<td class="availability">4/11/2016</td>
</tr>
<tr>
<td>Property 2</td>
<td class="availability">9/29/2015</td>
</tr>
</table>
可以使用.setDate()
为日期添加间隔。下面的示例将隐藏Property 3
和Property 4
行: