JavaScript時間日期格式化
原生的時間日期可讀性很差,有時格式可以說比較狂野,通常不能夠滿足我們的需要。
下面通過例項程式碼詳細介紹一下如何實現自定義時間日期格式化功能。
程式碼例項如下:
[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; } setInterval(function(){ var time = new Date().format("hh:mm:ss"); var date = new Date().format("yyyy-MM-dd"); document.getElementById("Time").innerHTML=time; document.getElementById("Date").innerHTML=date; },1000); </script> </head> <body> <div id="Date"></div> <div id="Time"></div> </body> </html>
程式碼實現了我們的要求,能夠實現自定義格式化效果,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).Date.prototype.format=function(format){},為Date例項新增一個方法,引數用來標識格式的字串。
(2).var o = {},宣告一個物件,屬性可以用來作為正規表示式進行匹配,屬性值是對應時間日期。
(3)."M+" : this.getMonth()+1,表示月份,加1是因為getMonth()方法獲取的值總比當前月份小1,比如一月份,那麼獲取的值是0。
(4)."q+" : Math.floor((this.getMonth()+3)/3),表示季度。
(5).if(/(y+)/.test(format)),判斷引數字串中是否存在格式化年份的標識;y是年份的標識,沒有放在物件o中,是因為年份是四位的。
(6).format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)),RegExp.$1表示第一個子表示式,這就是表示年份的字串標識,比如"yyyy";(this.getFullYear()+"").substr(4-RegExp.$1.length)擷取字串,比如"yyyy"表示保留四位年份如"2014",那麼就是從第一個開始擷取。最後進行替換。
(7).for(var k in o),遍歷物件的屬性。
(8).if(new RegExp("("+ k +")").test(format)),判斷引數字串中是否存在對應的時間日期格式字串。
(9).format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]: ("00"+ o[k]).substr((""+o[k]).length)),進行字串替換,當然裡面有點小技巧,RegExp.$1.length==1表示時間日期個位的時候,前面不需要加0,也就是8,而不是08這種形式,("00"+ o[k]).substr((""+o[k]).length)這個實現加0效果。
二.相關閱讀:
(1).關於時間物件參閱JavaScript Date物件一章節。
(2).replace()參閱正規表示式replace()一章節。
(3).substr()參閱JavaScript substr()一章節。
(4).prototype參閱JavaScript prototype一章節。
相關文章
- JavaScript 日期和時間的格式化JavaScript
- JavaScript自定義時間日期格式化JavaScript
- javascript時間日期格式化程式碼分析JavaScript
- javascript時間日期格式化例項程式碼JavaScript
- javascript實現的時間日期格式化外掛JavaScript
- 日期時間格式化
- javascript實現的時間日期格式化程式碼JavaScript
- javascript時間日期格式化和獲取封裝類JavaScript封裝
- C#日期時間格式化C#
- C#日期格式化,時間C#
- JavaScript 時間日期操作JavaScript
- JavaScript 動態時間日期JavaScript
- JavaScript動態時間日期JavaScript
- 時間日期格式化程式碼例項
- PHPdate格式化一個本地時間/日期PHP
- JavaScript實時變化時間日期JavaScript
- JavaScript 時間日期格式轉換JavaScript
- JavaScript比較時間日期大小JavaScript
- js時間日期格式化程式碼例項JS
- js格式化時間日期程式碼例項JS
- javascript日期格式化和倒數計時外掛JavaScript
- JavaScript 時間日期轉換成中文JavaScript
- javascript將日期轉化成時間戳JavaScript時間戳
- jQuery輸入時間日期自動格式化效果jQuery
- mysql中時間日期格式化MySql
- javascript獲取本地時間日期程式碼JavaScript
- GsonBuilder匯出null值、格式化輸出、日期時間UINull
- js正則格式化日期時間自動補0JS
- js簡單時間日期格式化程式碼例項JS
- javascript時間物件Date常用時間日期函式簡單分享JavaScript物件函式
- js對時間日期簡單格式化程式碼例項JS
- Java經典例項:使用DateFormatter來格式化日期時間JavaORM
- jira修改RoadMap裡的時間格式,硬核日期格式化
- JavaScript 獲取指定時間前幾天日期JavaScript
- JavaScript時間日期轉換成漢字形式JavaScript
- javascript時間日期相關內容介紹JavaScript
- javascript自動變動的時間日期效果JavaScript
- javascript比較兩個時間日期的大小JavaScript