2

我正在创建一个日历,并且需要能够通过确定是否存储有任何 unix 时间戳日期来选择(显示/隐藏)div.eventdata-dates(可能是字符串或数组,具体取决于事件出现的天数)它们位于代表当前所选月份的开始和结束的 unix 时间戳之间。例如:

现在是 2013 年 4 月,所以我希望只看到发生在 4 月的事件(1364774400[4 月 1 日,午夜] 和1367366399[4 月 30 日,23:59:59])。

我有很多eventdiv。它们看起来像这样:

<div class="event" data-dates="[1367539200, 1367625600]">...</div>
<div class="event" data-dates="[1364947200]">...</div>

假设其中一个或多个时间戳落在 2013 年 4 月的某个时间。如何选择它们?

4

1 回答 1

5

尝试使用filter

var rangeStart = 1364774400,
    rangeEnd   = 1367366399;

$('.event').filter(function() {
    return $(this).data('dates').some(function(date) {
        return date >= rangeStart && date < rangeEnd;
    });
})
.addClass('active');

http://jsfiddle.net/HJ9Xj/1/

笔记。某些方法在 IE<9 中不可用,因此您可以填充它或使用简单的for循环来检查数据数组是否包含介于start和之间的任何值end演示 2

于 2013-04-09T21:24:21.127 回答