js預設一個月時間差的時間段效果詳解
不少網頁功能有這樣的效果,那就是預先在文字框設定一個時間段,這個時間差也許幾天,也許是一週,也許是一個月。
當然需要根據實際情況設定,下面就是一個設定時間差為一個月的程式碼例項。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> Date.prototype.format = function(format) { var o = { "M+" : this.getMonth() + 1, // month "d+" : this.getDate(), // day "h+" : this.getHours(), // hour "m+" : this.getMinutes(), // minute "s+" : this.getSeconds(), // second "q+" : Math.floor((this.getMonth() + 3) / 3), // quarter "S" : this.getMilliseconds() // millisecond } if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "") .substr(4 - RegExp.$1.length)); for ( var k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); return format; } var begin=new Date(); var end=new Date(); new Date(begin.setMonth((new Date().getMonth()-1))); var begintime= begin.format("yyyy-MM-dd"); var endtime=end.format("yyyy-MM-dd"); window.onload=function(){ var ostart=document.getElementById("start"); var oend=document.getElementById("end"); ostart.value=begintime; oend.value=endtime; } </script> </head> <body> <input type="text" id="start"/> <input type="text" id="end"/> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).Date.prototype.format = function(format) {},為Date原型新增一個format()方法,此方法能夠對時間日期字串進行格式化。
(2).var o = {
"M+" : this.getMonth() + 1, // month
"d+" : this.getDate(), // day
"h+" : this.getHours(), // hour
"m+" : this.getMinutes(), // minute
"s+" : this.getSeconds(), // second
"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter
"S" : this.getMilliseconds()
// millisecond
},此物件非常巧妙,屬性可以作為正規表示式使用在後面。
(3).if (/(y+)/.test(format))
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length))
判斷字串是否匹配相應的正規表示式。
如果匹配,那麼就將年份部分替換為真實的年份數字,然後再給句"y"的資料進行字串擷取,比如如果是"yyyy",那麼就保持完整的年份,比如2015,如果是"yy"就保留兩位"15"。
(4).for ( var k in o)
if (new RegExp("(" + k + ")").test(format))
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length))
進行遍歷操作,根據需要完成了個位數前面補領效果。
二.相關閱讀:
(1).prototype可以參閱javascript prototype原型一章節。
(2).Date物件可以參閱JavaScript Date物件一章節。
(3).replace()可以參閱正規表示式replace()函式一章節。
(4).substr()方法可以參閱javascript substr()一章節。
相關文章
- js 計算兩個時間的時間差JS
- 計算兩段時間的時間差 (轉)
- JS判定一個給定的時間區間在哪些時間段範圍內JS
- JavaScript計算時間差詳解JavaScript
- JS計算時間差JS
- JavaScript計算兩個時間點之間的時間差JavaScript
- JS時間軸效果(類似於qq空間時間軸效果)JS
- JavaScript自動更新時間效果詳解JavaScript
- mysql時間操作(時間差和時間戳和時間字串的互轉)MySql時間戳字串
- js獲取當前時間上一個月前的時間JS
- 歷時一個月時間,小程式“成語猜題”版本效果圖
- 計算兩個時間差
- 畫像預先計算的一點設想.時間段分片
- 計算時間,指定時間的多少個月後
- ORACLE計算2個時間段相差時間小時、分、秒Oracle
- JS判定一個給定的時間在某個時間範圍內JS
- oracle計算兩個日期的時間差時分秒Oracle
- 解決MongoDB儲存時間時差的問題MongoDB
- 判斷一個時間是否處於指定的時間段內程式碼例項
- JS實現檢查給定時間範圍是否在每天的某個時間段內JS
- MySQL為欄位新增預設時間(插入時間)MySql
- 時間差計算
- JAVA算時間差Java
- java計算時間差及比較時間Java
- 這些遊戲“懷胎”時間堪比哪吒,預約時間一個比一個長遊戲
- 最近一段時間的總結
- 奇怪的Js時間計算方法,跨多個月後出現1天的誤差JS
- js計算兩個時間點時間間隔的程式碼例項JS
- java計算時間差及比較時間大小Java
- 解決java獲取系統時間差8個小時 專題Java
- iOS-OC-判斷某個時間是否處於某個時間段內iOS
- js檢測一段程式碼的執行消耗時間JS
- php 獲取時間差PHP
- postgresql 比較兩個時間差大於 N個小時SQL
- **java設定一段程式碼執行超時時間(轉)**Java
- sleep 時間段不佔指令碼執行時間指令碼
- 不同時間段的光色模型模型
- carbon 計算當前時間與給定時間差