如题:如何用JS按将日期排序?
例如:
<li>2011-1-1</li><li>2011-1-7</li><li>2011-1-2</li><li>2011-3-1</li><li>2011-2-1</li>
让它打开后自动按日期排序,不要说可以在数据查询的时候排序,我这些数据都是几个表来的,不好操作...谢谢!
例如:
<li>2011-1-1</li><li>2011-1-7</li><li>2011-1-2</li><li>2011-3-1</li><li>2011-2-1</li>
让它打开后自动按日期排序,不要说可以在数据查询的时候排序,我这些数据都是几个表来的,不好操作...谢谢!
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<ul id="test">
<li>2011-1-1</li>
<li>2011-1-7</li>
<li>2011-1-2</li>
<li>2011-3-1</li>
<li>2011-2-1</li>
</ul>
<script type="text/javascript">
var lis = document.getElementById('test').getElementsByTagName('li'); //这里根据实际情况自己修改下
var arrMS = new Array();
var d = new Date();
d.setHours(0,0,0,0);
for(var i = 0; i < lis.length; i ++) {
//日期转毫秒数
var strDate = lis[i].innerHTML;
var arrTmp = strDate.split('-');
arrMS.push(d.setFullYear(arrTmp[0],arrTmp[1] - 1,arrTmp[2]));
}
arrMS.sort();
var html = '';
for (i = 0; i < arrMS.length; i ++) {
d.setTime(arrMS[i]);
html += '<li>' + d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + '</li>\n';
}
document.getElementById('test').innerHTML = html;
</script>
</body>
</html>
属性说明
@dom: 保存的就是文档的DOM节点,即li节点
@date: li节点中的Date值
<html>
<head>
<title></title>
</head>
<body>
<ul>
<li>2011-1-1</li>
<li>2011-1-7</li>
<li>2011-1-2</li>
<li>2011-3-1</li>
<li>2011-2-1</li>
</ul>
<script type='text/javascript'>
var ul = document.getElementsByTagName('ul')[0];
var lis = ul.getElementsByTagName('li');
var ux = [];
for (var i=0; i<lis.length; i++){
var tmp = {};
tmp.dom = lis[i];
tmp.date = new Date(lis[i].firstChild.data.replace(/-/g,'/'));
ux.push(tmp);
}
ux.sort(function(a,b){
return a.date - b.date;
});
for (var i=0; i<ux.length; i++){
ul.appendChild(ux[i].dom);
}
</script>
</body>
</html>