将每个li中的时间与当前时间

时间:2015-12-04 06:27:34

标签: javascript jquery

这是关于什么的?

我正在尝试检查当前时间是否小于或等于特定跨度中给出的时间

问题是什么?

我想为没有页面刷新的每个li设置计时器,以检查时间是否等于当前时间或者span中给出的时间与当前时间相比小于2秒。我不确定检查个人李的好习惯是什么?

HTML

<ul>
    <li>
        <span class="hidden time">December 3 2015 21:58:00 UTC-0800</span>
    </li>
    <li>
        <span class="hidden time">December 12 2015 15:00:00 UTC-0800</span>
    </li>
</ul>

1 个答案:

答案 0 :(得分:1)

一个柜台会做得很好。您可能希望将间隔设置为小于2秒的时间间隔,并且在每个间隔使用jQuery .filter()方法查看是否有任何时间满足条件,然后添加类。

&#13;
&#13;
$(function() {
    var timer = setInterval(function() {
        var ts = Date.now();
        $('.current').text( new Date(ts) );
        $('ul > li > .hidden.time').filter(function() {
            var thisTime = new Date( $(this).text().trim() );
            return thisTime - ts <= 2000;
        })
        .addClass('active');
    }, 1000);
});
&#13;
.active {
    background: black;
    color: yellow;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  Current Time: <span class="current"></span>
</div>
<ul>
    <li>
        <span class="hidden time">December 3 2015 21:58:00 UTC-0800</span>
    </li>
    <li>
        <span class="hidden time">December 12 2015 15:00:00 UTC-0800</span>
    </li>
</ul>
&#13;
&#13;
&#13;