还有需要把时间的顺序倒过来。如现在需要实现成这样的:
8时至今 | 2012年11月28日 (20-21时) |
2012年11月28日 (21-22时) |
2012年11月28日 (22-23时) |
2012年11月28日 (23-0时) |
2012年11月29日 (0-1时) |
2012年11月29日 (1-2时) |
2012年11月29日 (2-3时) |
2012年11月29日 (3-4时) |
2012年11月29日 (4-5时) |
2012年11月29日 (5-6时) |
2012年11月29日 (6-7时) |
2012年11月29日 (7-8时) |
html代码如下:
<table width="1056" border="1" align="center" cellPadding="0" cellSpacing="0" borderColorLight="#009999" borderColorDark="#ffffff" bgColor="#DAEBF8"> <tr style="font-size:12px;"> <td width="72" rowspan="2"><div align="center">所属地</div></td> <td width="67" rowspan="2" ><div align="center">名称</div></td> <td height="20" colspan="13" bgcolor="DAEBF8"><div align="center">降雨量(12小时段)</div></td> </tr> <tr style="font-size:12px;" id="trd"> <td height="20" width="54" align="center"></td> <td height="20" width="54" align="center"></td> <td height="20" width="53" align="center"></td> <td height="20" width="69" align="center"></td> <td height="20" width="54" align="center"></td> <td height="20" width="68" align="center"></td> <td height="20" width="55" align="center"></td> <td height="20" width="54" align="center"></td> <td height="20" width="52" align="center"></td> <td height="20" width="68" align="center"></td> <td height="20" width="69" align="center"></td> <td height="20" width="69" align="center"></td> <td height="20" width="69" align="center"></td> </tr> </table>
javascript代码如下:
<script type="text/javascript"> var timeArr = []; var myDate = new Date(); var hour = myDate.getHours(); var year = myDate.getFullYear(); var month = (myDate.getMonth()) + 1; var day = myDate.getDate(); for (var i = 0; i < 12; i++) { if (hour - i >= 0) { timeArr.push(hour - i); } else { timeArr.push(hour - i + 24); } } var tds = document.getElementById("trd").getElementsByTagName("td"); tds[0].innerHTML = "8时至今"; for (var i = 0, l = tds.length; i < l; i++) { if (timeArr[i] - 1 < 0 ) { tds[i + 1].innerHTML = year + "年" + month + "月" + (day - 1) + "日" + "<br/>" + "(" + (timeArr[i] - 1 + 24) + "-" + timeArr[i] + "时)"; } else { if (tds[i + 1] != null) { if (timeArr[i] > 23) { tds[i + 1].innerHTML = year + "年" + month + "月" + (day-1) + "日" + "<br/>" + "(" + (timeArr[i] - 1) + "-" + timeArr[i] + "时)"; } else { tds[i + 1].innerHTML = year + "年" + month + "月" + day + "日" + "<br/>" + "(" + (timeArr[i] - 1) + "-" + timeArr[i] + "时)"; } } } } </script>
望高手帮帮忙!
你能做到这一步,就不是js的问题了。
顺序倒过来,将tds[i+1]改成tds[tds.length-i]试试看看,代码暂时没时间看,应该是你少考虑了一些情况,少加了判断
问题已解决:现在帖出代码
<script type="text/javascript"> var timeArr = []; var myDate = new Date(); var hour = myDate.getHours(); var year = myDate.getFullYear(); var month = myDate.getMonth() + 1; var day = myDate.getDate(); for (var i = 0; i < 12; i++) { if (hour - i >= 0) { timeArr.push(hour - i); } else { timeArr.push(hour - i + 24); } } myDate.setDate(myDate.getDate()-1); var tds = document.getElementById("trd").getElementsByTagName("td"); tds[12].innerHTML = "8时至今"; for (var i = 0, l = tds.length - 1; i < l; i++) { if (timeArr[i] - 1 < 0) { tds[l - i - 1].innerHTML = myDate.getFullYear() + "年" + (myDate.getMonth() + 1) + "月" + (day - 1) + "日" + "<br/>" + "(" + (timeArr[i] - 1 + 24) + "-" + timeArr[i] + "时)"; } else if (timeArr[i] - 12 > 0) { tds[l - i - 1].innerHTML = myDate.getFullYear() + "年" + (myDate.getMonth() + 1) + "月" + myDate.getDate() + "日" + "<br/>" + "(" + (timeArr[i] - 1) + "-" + timeArr[i] + "时)"; } else { if (tds[l - i - 1] != null) { tds[l - i - 1].innerHTML = year + "年" + month + "月" + day + "日" + "<br/>" + "(" + (timeArr[i] - 1) + "-" + (timeArr[i]) + "时)"; } } } </script>