问题
i did use
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>
i try it many times some problem with Firefox browser or IE or safari
it's work only with opera and chrome ,
what the proper cross-browser date format is for passing to new Date() ?
回答1:
If you can control the date format in the HTML, then it would probably be best to convert it to a timestamp. Otherwise, you'd need to create a function in javascript to convert it to the proper format, whatever that might be.
Instead of doing that, why not just split it up into it's parts and pass the proper arguments to new Date() -- year, month, day, hours, minutes, seconds.
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;
});
来源:https://stackoverflow.com/questions/10677730/what-the-proper-cross-browser-date-format-is-for-passing-to-new-date