根据实体

时间:2016-05-24 12:22:45

标签: javascript symfony twig

window.setInterval(function()
    {

        var expiryDate = $('.houdini').attr('data-enddate');

        var current = new Date();
        var expiry = new expiryDate;

        if (current.getTime() > expiry.getTime())
        {
            $('.houdini').hide();
        }

        else if (current.getTime() < expiry.getTime())
        {
            $('.houdini').show();
        }

    });

.houdini是我的html中的tr。 tr处于循环中。它循环通过我的约会实体并为每个约会打印一个tr。 现在我想隐藏一个约会(稍后将被删除),如果它已经过期并淡出它并且滚动&#34;对未来的其他约会。 但这样做是因为类名不显示tr。

任何人都有解决方案吗?

顺便说一句,我正在使用Symfony和twig模板。

这是HTML

 <tbody>
        {% for appointment in appointments %}
            <tr class="houdini" data-endDate="{{appointment.endDate|date('Y-m-d H:i')}}">
                <td>{{appointment.startDate|date('H:i')}}</td>
                <td>{{appointment.client.companyname}}</td>
                <td>{% for employee in appointment.employees %}
                        {{employee.firstname}}{% if not loop.last %}, {% endif %}
                    {% endfor %}</td>
                <td>{{appointment.description}}</td><br>
            </tr>
        {% endfor %}
        </tbody>

2 个答案:

答案 0 :(得分:0)

这段可能会对你有用,如果你遇到任何错误,请告诉我......

window.setInterval(function()
{
    var houdiniElements = $('.houdini');
    for(var i =0; i < houdiniElements.length; i++) {
        var expiryDate = $(houdiniElements[i]).data('enddate'); // Here probably if you are using some different date format than you need to parse it accordingly...

        var current = new Date();
        var expiry = new Date(expiryDate);

        if (current.getTime() > expiry.getTime()){
            $(houdiniElements[i]).hide();
        } else if (current.getTime() < expiry.getTime()){
            $(houdiniElements[i]).show();
        }
    }
},1000); //1000 miliseconds = 1second

如果您在Y-m-dTH中有日期会更好:M:S格式然后您可以在javascript中轻松地将日期字符串转换为日期对象,如下所示

var correctStart = '2012-11-10T13:10:13';
var date = new Date(correctStart);

OR

var start = '10/11/2012 13:10:13';    
var date = new Date(start);

答案 1 :(得分:-1)

我认为数据的结果不是Date只是一个字符串。您可以将Date.getTime()保存在数据中并将其转换为intager而不是保存Date。