將時間日期格式化為yyyy-MM-dd格式程式碼例項
本章節介紹一個能夠格式化時間日期的程式碼,能夠比較靈活的實現對時間日期格式化效果。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼Date.prototype.format = function(format){ var o={ "M+" : this.getMonth()+1, "d+" : this.getDate(), "h+" : this.getHours(), "m+" : this.getMinutes(), "s+" : this.getSeconds(), "q+" : Math.floor((this.getMonth()+3)/3), "S" : this.getMilliseconds() } 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 d=new Date(); console.log(d.format('yyyy-MM-dd'));
上面的程式碼實現了時間日期格式化效果,下面介紹一下它的實現過程。
一.程式碼註釋:
1.Date.prototype.format=function(format){},為Date物件例項新增format()方法,引數是時間日期格式。
2.var o={
"M+" : this.getMonth()+1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds(),
"q+" : Math.floor((this.getMonth()+3)/3),
"S" : this.getMilliseconds()
}
物件直接量中的屬性名稱設計的恰好可以作為正規表示式,加號可以作為正則中的重複兩次,表示匹配一次或者多次前面的字元,屬性值則是對應的時間日期值,年份沒有在此物件中是進行的單獨處理,之所以這樣是因為年份最高是4位,而其他的最高是2位。
3.if(/(y+)/.test(format)){format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));},將格式中的"y"替換為年份,當然也會根據y的數目擷取指定數目的年份字串,比如"yy",那麼返回的年份就是"14"這樣的字串。
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))
上面的程式碼其實是簡化的寫法,完整的寫法如下:
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));
}
}
遍歷物件直接量中的每一個屬性,進行相應的操作。
if(new RegExp("("+ k +")").test(format)),這個是判斷格式字串中是否有相應的字串變數中對應的時間日期格式,比如"yyyy-MM-dd"格式字串就有"M+"和"d+"。
format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k] : ("00"+ o[k]).substr((""+o[k]).length)),此程式碼就是根據格式字串進行相應的日期格式操作。
5. return format,返回格式化後的時間日期字串。
二.相關閱讀:
1.關於Date物件相關方法可以參閱JavaScript Date物件一章節。
2.replace()函式可以參閱正規表示式replace()一章節。
3.substr()函式可以參閱javascript substr()一章節。
4.三元運算子可以參閱三元運算子一章節。
相關文章
- 時間日期格式化程式碼例項
- javascript時間日期格式化例項程式碼JavaScript
- js時間日期格式化程式碼例項JS
- js格式化時間日期程式碼例項JS
- js簡單時間日期格式化程式碼例項JS
- yyyy-MM-dd hh:mm:ss時間日期格式化程式碼
- js對時間日期簡單格式化程式碼例項JS
- 將時間戳轉換為時間日期程式碼例項時間戳
- js時間格式化和時間功能例項程式碼JS
- javascript時間日期格式化程式碼分析JavaScript
- Java經典例項:使用DateFormatter來格式化日期時間JavaORM
- 將時間日期分割成陣列程式碼例項陣列
- 日期時間格式化
- js將日期輸出為YYYY/mm/dd格式程式碼例項JS
- javascript實現的時間日期格式化程式碼JavaScript
- 將時間戳轉換為時間例項程式碼時間戳
- js時間日期排序程式碼例項JS排序
- JavaScript時間日期格式化JavaScript
- C#日期時間格式化C#
- C#日期格式化,時間C#
- javascript格式化字串程式碼例項JavaScript字串
- 時間日期和時間戳相互轉換程式碼例項時間戳
- JavaScript 日期和時間的格式化JavaScript
- JavaScript自定義時間日期格式化JavaScript
- js 格式化日期 yyyy-MM-dd HH:mm:ssJS
- js格式化數字例項程式碼JS
- PHPdate格式化一個本地時間/日期PHP
- javascript實現的時間日期格式化外掛JavaScript
- mysql中時間日期格式化MySql
- javascript計算兩個日期之間的時間差程式碼例項JavaScript
- jira修改RoadMap裡的時間格式,硬核日期格式化
- 根據時差獲取世界各地日期時間程式碼例項
- Java經典例項:把字串解析為日期時間Java字串
- JavaScript 中如何將日期格式化為 DD/MM/YYYYJavaScript
- jQuery輸入時間日期自動格式化效果jQuery
- js將時間日期物件轉換為時間日期字元JS物件字元
- javascript實現的數字格式化程式碼例項JavaScript
- js時間物件:獲取當前時間(格式化)- 程式碼篇JS物件