jQuery: pengurutan isotop berdasarkan tanggal

Saya mengurutkan kisi-kisi div berdasarkan tanggal, tetapi saya mengalami masalah. Div diurutkan berdasarkan tanggal, namun saat Anda memperkenalkan bulan lain, hal tersebut tidak memperhitungkannya dan hanya mengurutkan berdasarkan nilai hari.

HTML:

<div class="grid-filter">
    <a href="/id#">
    <div class="grid-block" style="background-color: #46747c" data-category="1952013">
        <div class="block-text date-title">19/05</div>
    </div>
    </a>
</div>
<div class="grid-filter">
    <a href="/id#">
    <div class="grid-block" style="background-color: #ebd133" data-category="2552013">
        <div class="block-text date-title">25/05</div>
    </div>
    </a>
</div>
<div class="grid-filter">
    <a href="/id#">
    <div class="grid-block" style="background-color: #cc7788" data-category="3052013">
        <div class="block-text date-title">30/05</div>
    </div>
    </a>
</div>
<div class="grid-filter">
    <a href="/id#">
    <div class="grid-block" style="background-color: #46747c" data-category="0562013">
        <div class="block-text date-title">05/06</div>
    </div>
    </a>
</div>


jquery

 jQuery(document).ready(function(){

var jQuerycontainer = jQuery('#main-grid');

if(location.hash!=""){
    var hashfilter = "." + location.hash.substr(1);
    }
    else{
    var hashfilter = "*";
    }

jQuerycontainer.imagesLoaded( function(){
jQuerycontainer.isotope({
    filter: hashfilter,
    itemSelector: '.grid-block',
    getSortData : {
    date : function( jQueryelem ) {
    return jQueryelem.attr('data-category');
    }
    },
    sortBy : 'date',
    animationEngine: 'css',
    masonry: {
    columnWidth: 4
    }

});
});

jQuery('.filter-menu a').click(function(){
    var selector = jQuery(this).attr('data-filter');
    var prettyselector = selector.substr(1);
    location.hash = prettyselector;
    jQuery('html, body').animate({scrollTop:0}, 'slow');
    return false;
    });

jQuery('.grid-filter a').click(function(){
    var selector = jQuery(this).attr('data-filter');
    var prettyselector = selector.substr(1);
    location.hash = prettyselector;
    jQuery('html, body').animate({scrollTop:0}, 'slow');
    return false;
    }); 

jQuery(window).hashchange(function(){

                if(location.hash!=""){
                    var hashfilter = "." + location.hash.substr(1);
                }
                else{
                    var hashfilter = "*";
                }


jQuerycontainer.imagesLoaded( function(){
jQuerycontainer.isotope({
    filter: hashfilter,
    itemSelector: '.grid-block',
    getSortData : {
    date : function( jQueryelem ) {
    return jQueryelem.attr('data-category');
    }
    },
    sortBy : 'date',
    animationEngine: 'css',
    masonry: {
    columnWidth: 4
    }
});
});
});
});

Jadi blok-bloknya sedang diurutkan, TETAPI blok terakhir dengan tanggal 0562013 muncul pertama kali karena 05 adalah angka terkecil yang saya asumsikan, apakah ada cara untuk memperhitungkan bulan juga sehingga akan berhasil mengurutkan div berdasarkan tanggal?


person user1374796    schedule 07.03.2013    source sumber


Jawaban (2)


Anda perlu mengubah format tanggal Anda. Sekarang, Anda tidak bisa membedakan hari dan bulan: 2122013 bisa jadi 2.12.2013 dan juga 21.2.2013.

Saya menyarankan format umum Y-M-D (tahun-bulan-hari, misalnya 2013-03-07).
Secara default, format ini dapat diurutkan. Anda tidak perlu mengubah apa pun lagi.

person kapex    schedule 07.03.2013

person    schedule
comment
ini sepertinya tidak berhasil, sepertinya tidak mengurutkan div berdasarkan tanggal? - person user1374796; 07.03.2013
comment
Saya mencoba yang sudah diedit juga, sepertinya mengurutkan div dalam urutan acak. Saya telah melihat Anda mengubahnya kembali ke yang di atas, saya sudah mencoba mengerjakannya tetapi saya masih tidak bisa membuatnya berfungsi? - person user1374796; 08.03.2013
comment
Bisakah Anda mengubah cara menghasilkan tanggal dengan menambahkan 0 ke bulan? - person TizianoPiccardi; 08.03.2013
comment
Bisa di halaman ini ya. Saya telah mengubah php, tanggal yang sekarang dihasilkan memiliki nol di depannya, apakah sekarang ada cara agar berhasil mengurutkan berdasarkan tanggal? - person user1374796; 08.03.2013
comment
Saya mengedit jawaban untuk mencapai tujuan Anda. Ngomong-ngomong, jika Anda bisa menghasilkan tanggal sesuai keinginan, akan lebih mudah untuk mengembalikan nilai dalam format ini (yyyymmdd) langsung dari halaman php Anda. (dan Anda tidak memerlukan adaptasi javascript ini) - person TizianoPiccardi; 08.03.2013