使用.now()进行jQuery日期检查

时间:2015-06-19 10:27:56

标签: javascript jquery html date

提前致谢。

我使用以下代码根据日期从表中删除表行。该表显示了即将进行的预订,但我希望将同一天的预订包含在表格中,并仅删除过去的预订。 如果日期在今天之前,则隐藏该行。

继承人HTML.T顺便说一句,这是循环的一部分。

<table style="width:100%;" class="dashboard_widget" id="bookingsdashboard">
            <thead>
                <tr>
                    <th>
                        <p><strong>Booking Ref</strong></p>
                    </th>
                    <th>
                        <p><strong>Arrival Date</strong></p>
                    </th>
                    <th>
                        <p><strong>Booking Type</strong></p>
                    </th>
                    <th>
                        <p><strong>Operator Name</strong></p>
                    </th>
                    <th class="options">
                        <p><strong>Options</strong></p>
                    </th>
                </tr>
            </thead>
            <tbody>



                <tr>
                    <td>
                        <h3>MR Design Et Al</h3>
                    </td>
                    <td id="arrivaldate-widget">
                        <p><span class="arrivaldate-widget-unix" style="display:none;">1434844800</span> 21.06.2015<br>(9 nights)</p>
                    </td>
                    <td>
                        <p>Corporate</p>
                    </td>
                    <td>
                        <p>Operatex</p>
                    </td>
                    <td>
                        <a href="http://www.greenmonkeypublicrelations.com/scpads/wp-admin/post.php?post=225&amp;action=edit"><i class="fa fa-file-text" style="padding-right:10px;"></i>Edit</a>
                    </td>
                </tr>   





                <tr>
                    <td>
                        <h3>Mr Knopps</h3>
                    </td>
                    <td id="arrivaldate-widget">
                        <p><span class="arrivaldate-widget-unix" style="display:none;">1429574400</span> 21.04.2015<br>(343 nights)</p>
                    </td>
                    <td>
                        <p>Groups</p>
                    </td>
                    <td>
                        <p>Operatorsio</p>
                    </td>
                    <td>
                        <a href="http://www.greenmonkeypublicrelations.com/scpads/wp-admin/post.php?post=219&amp;action=edit"><i class="fa fa-file-text" style="padding-right:10px;"></i>Edit</a>
                    </td>
                </tr>   





                <tr>
                    <td>
                        <h3>Mr Knopps</h3>
                    </td>
                    <td id="arrivaldate-widget">
                        <p><span class="arrivaldate-widget-unix" style="display:none;">1456012800</span> 21.02.2016<br>(297 nights)</p>
                    </td>
                    <td>
                        <p>Groups</p>
                    </td>
                    <td>
                        <p>Operatorsio</p>
                    </td>
                    <td>
                        <a href="http://www.greenmonkeypublicrelations.com/scpads/wp-admin/post.php?post=220&amp;action=edit"><i class="fa fa-file-text" style="padding-right:10px;"></i>Edit</a>
                    </td>
                </tr>   





                <tr>
                    <td>
                        <h3>Mr Knopps</h3>
                    </td>
                    <td id="arrivaldate-widget">
                        <p><span class="arrivaldate-widget-unix" style="display:none;">1429574400</span> 21.04.2015<br>(6 nights)</p>
                    </td>
                    <td>
                        <p>Groups</p>
                    </td>
                    <td>
                        <p>Operatorsio</p>
                    </td>
                    <td>
                        <a href="http://www.greenmonkeypublicrelations.com/scpads/wp-admin/post.php?post=218&amp;action=edit"><i class="fa fa-file-text" style="padding-right:10px;"></i>Edit</a>
                    </td>
                </tr>   


            </tbody></table>

继承人jQuery

jQuery(document).ready(function(){
  var date = jQuery('.arrivaldate-widget-unix').val();
  var time = jQuery.now();
  if (date < time ) {
    jQuery('.arrivaldate-widget-unix').closest('tr').hide();
  }
});

3 个答案:

答案 0 :(得分:1)

假设您需要隐藏行

您需要使用.each()来迭代对象

jQuery(document).ready(function(){
    var time = jQuery.now(); //OR new Date(jQuery.now())
    jQuery('.arrivaldate-widget-unix').each(function(){
        var date = jQuery(this).val();          
        if (date < time ) {
            jQuery(this).closest('tr').hide();
        }
    });
});

编辑,与仅使用日期部分进行比较

jQuery(document).ready(function(){
    var today = new Date();

    //Only date part
    today.setHours(0, 0, 0, 0);

    jQuery('.arrivaldate-widget-unix').each(function(){
        var date = jQuery(this).val();          
        if (date < today ) {
            jQuery(this).closest('tr').hide();
        }
    });
});

答案 1 :(得分:0)

Satpals代码解决了你的问题,除了白天的事情。 您可以使用前一天进行比较并使用该日。 为了做到这一点,你可以创建一个前一天找到的函数。 here您可以找到有关Date方法的所有信息。 您可以找到当天,然后减去1

var yesterday = new Date();
 d.setDate(yesterday.getDate()-1);

然后你应该进行必要的检查,如果它是一个月的第一天,减去月份等等。

答案 2 :(得分:0)

@all你。 感谢您的帮助,但我发现我能看到的是解决问题的更有效方法。我实际上离开了js并使用了一些PHP代替。这意味着我可以在显示之前从循环中删除记录,因此不需要隐藏。

仅供参考,我注意到js版本和php版本之间的时间戳不同。所以我在循环中生成了一个新的时间戳来运行条件。这现在完美无缺。如果$ arrival日期时间戳等于或大于$ today timestamp,则再次包含HTML(),else,循环。

无论如何,谢谢你的帮助。