2

私は使った

var elems = $("#D li").toArray();
elems.sort(function(a, b) {
    var adate = new Date($(a).find('div.dateDiv').text());
    var bdate = new Date($(b).find('div.dateDiv').text());
    return adate > bdate ? -1 : 1;
});
$("#D").html(elems);

<div id="D">
    <li>1<div class="dateDiv">2012-04-15 10:25:45</div><div>df</div></li> 
    <li>2 <div class="dateDiv">2012-04-10 19:41:08</div><div>df</div></li> 
    <li> 3 <div class="dateDiv">2012-04-20 07:00:10</div><div>ab</div></li> 
    <li>4 <div class="dateDiv">2012-04-12 16:45:50</div><div>a</div></li>

     <li>1<div class="dateDiv">2012-04-15 10:25:45</div></li>
   <li>2 <div class="dateDiv">2012-04-10 19:41:08</div></li>
  <li> 3 <div class="dateDiv">2012-04-20 07:00:10</div></li>
   <li>4 <div class="dateDiv">2012-04-12 16:45:50</div></li>


      <li>1<div class="dateDiv">2012-04-15 10:25:45</div></li>
   <li>2 <div class="dateDiv">2012-04-10 19:41:08</div></li>
  <li> 3 <div class="dateDiv">2012-04-20 07:00:10</div></li>
   <li>4 <div class="dateDiv">2012-04-12 16:45:50</div></li>


      <li>1<div class="dateDiv">2012-04-15 10:25:45</div></li>
   <li>2 <div class="dateDiv">2012-04-10 19:41:08</div></li>
  <li> 3 <div class="dateDiv">2012-04-20 07:00:10</div></li>
   <li>4 <div class="dateDiv">2012-04-12 16:45:50</div></li>
</div>​

FirefoxブラウザかIEかsafariで何回か試してみます

Opera と Chrome でのみ動作します。

new Date() に渡すための適切なクロスブラウザの日付形式は何ですか?

4

1 に答える 1

0

HTML で日付形式を制御できる場合は、タイムスタンプに変換することをお勧めします。それ以外の場合は、javascript で関数を作成して、適切な形式に変換する必要があります。

そうする代わりに、それをいくつかの部分に分割し、適切な引数を new Date() に渡してはいかがでしょうか? 年、月、日、時、分、秒です。

http://jsfiddle.net/katylava/xpjRa/2/

function parseDate(date) {
    var date_time = date.split(' ');
    var ymd = date_time[0].split('-');
    var his = date_time[1].split(':');
    return new Date(ymd[0], ymd[1], ymd[2], his[0], his[1], his[2]);
}

var elems = $("#D li").toArray();
elems.sort(function(a, b) {
    var adate = parseDate($(a).find('div.dateDiv').text());
    var bdate = parseDate($(b).find('div.dateDiv').text());
    return adate > bdate ? -1 : 1;
});
于 2012-05-22T12:47:24.967 に答える