Javascript 按日期对div排序(即div id)

Javascript 按日期对div排序(即div id),javascript,jquery,sorting,date,Javascript,Jquery,Sorting,Date,我有结果页面。每个div都有带有事件日期(Ymd)的id。如何按子div事件日期对“results”div中的div进行排序,并在日期小于或等于今天时消除div?这应该很容易做到,但我不太擅长jquery。同时,如果能够改变“今天”的可变时区,那将是非常棒的 <div class="results"> <div class="item shadowbox route_entry" id="20150417"> Content </di

我有结果页面。每个div都有带有事件日期(Ymd)的id。如何按子div事件日期对“results”div中的div进行排序,并在日期小于或等于今天时消除div?这应该很容易做到,但我不太擅长jquery。同时,如果能够改变“今天”的可变时区,那将是非常棒的

<div class="results">
    <div class="item shadowbox route_entry" id="20150417">
        Content
    </div>
    <div class="item shadowbox route_entry" id="20150422">
        Content
    </div>
    <div class="item shadowbox route_entry" id="20150424">
        Content
    </div>
    <div class="item shadowbox route_entry" id="20150427">
        Content
    </div>
    <div class="item shadowbox route_entry" id="20150429">
        Content
    </div>
</div>

内容
内容
内容
内容
内容
谢谢您的帮助:)

您可以这样使用

var today   = new Date().getTime(),
    $result = $('.results > .item').clone(true).filter(function () {
        // get date 
        var date = $(this).attr('id').replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3");        
        // compare with current date, if <= today return true, and item will be in result, if return false item will be ignored 
        return new Date(date).getTime() > today;
    }).sort(function (a, b) {
        return +a.id - +b.id;
    });;

$('.results').html($result);
var today=new Date().getTime(),
$result=$('.results>.item')。克隆(true)。筛选(函数(){
//约会
var date=$(this.attr('id').replace(/(\d{4})(\d{2})(\d{2})/,“$1-$2-$3”);
//如果是今天,则与当前日期进行比较;
}).排序(功能(a、b){
返回+a.id-+b.id;
});;
$('.results').html($result);
你可以这样使用

var today   = new Date().getTime(),
    $result = $('.results > .item').clone(true).filter(function () {
        // get date 
        var date = $(this).attr('id').replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3");        
        // compare with current date, if <= today return true, and item will be in result, if return false item will be ignored 
        return new Date(date).getTime() > today;
    }).sort(function (a, b) {
        return +a.id - +b.id;
    });;

$('.results').html($result);
var today=new Date().getTime(),
$result=$('.results>.item')。克隆(true)。筛选(函数(){
//约会
var date=$(this.attr('id').replace(/(\d{4})(\d{2})(\d{2})/,“$1-$2-$3”);
//如果是今天,则与当前日期进行比较;
}).排序(功能(a、b){
返回+a.id-+b.id;
});;
$('.results').html($result);

此片段过滤排序您的div

//获取格式为YYYYMMDD的日期字符串
变量日期=新日期();
var dateString=date.getFullYear()+(“0”+(date.getMonth()+1)).slice(-2)+(“0”+(date.getDate()).slice(-2);
var$results=$('.results');
var$items=$results.children('.item');
//从结果容器中分离项目
$items.detach();
//筛选日期>今天的项目
$items=$items.filter(函数(i,项){
return item.id>dateString;
});
//按日期对项目排序
$items.sort(函数(a,b){
返回a.id>b.id;
});
//将筛选和排序的项目重新发送回容器
$items.appendTo($results)

20150417
20150422
20150424
20150427
20150425

此片段过滤排序您的div

//获取格式为YYYYMMDD的日期字符串
变量日期=新日期();
var dateString=date.getFullYear()+(“0”+(date.getMonth()+1)).slice(-2)+(“0”+(date.getDate()).slice(-2);
var$results=$('.results');
var$items=$results.children('.item');
//从结果容器中分离项目
$items.detach();
//筛选日期>今天的项目
$items=$items.filter(函数(i,项){
return item.id>dateString;
});
//按日期对项目排序
$items.sort(函数(a,b){
返回a.id>b.id;
});
//将筛选和排序的项目重新发送回容器
$items.appendTo($results)

20150417
20150422
20150424
20150427
20150425

谢谢@sw\u double,非常好用。如何设置日期变量的时区?我想您最好使用一些时区库。时刻时区或时区js查看此问题了解更多信息,谢谢@sw_double的完美表现。如何设置日期变量的时区?我想您最好使用一些时区库。即时时区或时区js查看此问题了解更多信息它工作:)感谢您的帮助:)它按我的要求工作:)它工作:)谢谢您的帮助:)它按我的要求工作:)