如何用JS按将日期排序?

verysoso 2011-05-13 10:26:08
如题:如何用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>
让它打开后自动按日期排序,不要说可以在数据查询的时候排序,我这些数据都是几个表来的,不好操作...谢谢!
...全文
2274 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pubiao2008 2013-03-09
  • 打赏
  • 举报
回复
引用 4 楼 shuixiya1999 的回复:
自定义了一个数据结构ux 属性说明 @dom: 保存的就是文档的DOM节点,即li节点 @date: li节点中的Date值 XML/HTML code?12345678910111213141516171819202122232425262728293031<html><head><title></title></head><body><ul> <li……
更喜欢4楼的方法,可将日期写入li下的span中,插入标题放span前,这样可以合理控制新闻类型的排序了
乌镇程序员 2011-05-13
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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>
静石 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
mark 帮顶 蹭分
[/Quote]
你还蹭分,过分了!
没有比较好的方法不敢乱说
等高手吧
休谱诺斯 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 t5500 的回复:]

HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equi……
[/Quote]顶下。。。
汉尼拔 2011-05-13
  • 打赏
  • 举报
回复
自定义了一个数据结构ux
属性说明
@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>

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧