問題就是頁面初始化的時候需要賦值一個跨度時間.第一個時間或者是第二個時間的前30天,或者是3天,或者是其他的一個時間跨度.這裡就是求時間跨度的問題.
昨天發現一個問題,就是在處理時間上考慮太少了,沒有完全細緻的考慮問題,哎,不知道是經驗少?還是其他原因,總之都是自己的問題,不過還好發現了.
就是在處理跨年和跨月的時候會出現一些問題,當然,可能還有更好的方案,還有更加完善並且更加小巧的用法,但是由於當時就是用的這個笨辦法,所以就是在這個基礎上的改進.
其實就用普通的思考,也是相當簡單,就是目前時間,應當很好處理,其次就是前面的那個時間,直接處理吧.
看下面的程式就知道了,就是用規格時間去處理,把跨度到目前時間的前一個時間當作一個時間格式去處理,然後就跟目前時間一樣的,去直接取值就可以了,
具體程式如下:
function reloadTime(){<br />var date = new Date();<br />var date3 = date.getTime()-(3*3600*24*1000);//這裡就是處理時間的,按標準時間去處理,然後後面都是取值.直接取出來就可以了<br />var fordate = new Date(date3); </p><p>var hour = date.toTimeString().substring(0,8);<br />var month;<br />var endDay;<br />var stDay;<br />var startmonth;</p><p>if((date.getMonth()+1)<10){<br />month = '0'+(date.getMonth()+1)<br />}else{<br />month = (date.getMonth()+1)<br />}</p><p>if(date.getDate()<10){<br />endDay = '0'+date.getDate();<br />}else{<br />endDay = date.getDate();<br />}</p><p>//計算初始天<br />if(fordate.getDate()<10){<br />stDay = '0'+fordate.getDate();<br />}else{<br />stDay = fordate.getDate();<br />}<br />//計算初始月份<br />if((fordate.getMonth()+1)<10){<br />startmonth = '0'+(fordate.getMonth()+1)<br />}else{<br />startmonth = (fordate.getMonth()+1)<br />}<br />//處理年<br />//三天前<br />var stTime = fordate.getYear()+'-'+startmonth+'-'+stDay+' '+hour;<br />Query.startTime.value=stTime;<br />//目前時間<br />var thisTime = date.getYear()+'-'+month+'-'+endDay+' '+hour;<br />Query.endTime.value=thisTime;<br />}</p><p>對於時間,這樣修改是正確的,用其他方法,不好掌握.所以,哎.