what the proper cross-browser date format is for passing to new Date()

本秂侑毒 提交于 2019-12-11 03:35:09

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!