用js對時間格式化可以說是Web項目中不可或缺的一個Javascript類庫,它可以協助你快速的解決用戶端編程的許多問題,下面貼出一個用js格式化時間的方法。
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 d = new Date().format('yyyy-MM-dd');
另一種方法:
在Javascript之中,日期對象是Date,那麼如何將一個日期對象按照定製的格式進行輸出呢?
可以現告訴你,Date對象有有四個內建方法,用於輸出為字串格式,分別為:
1)toGMTString,將一個日期按照GMT格式顯示
2)toLocaleString,將一個日期按照本地作業系統格式顯示
3)toLocaleDateString,按照本地格式顯示一個日期對象的日期部分
4)toLocaleTimeString,按照本地格式顯示一個日期對象的時間部分
儘管Javascript的Date對象中內建提供了這些輸出為字串的方法,但是這些字串不是我們來控制格式的,因此如果我們需要我們自己定製的特殊格式,那麼又該怎麼辦呢?
不用著急,JsJava中提供了專用的類,專門對日期進行指定格式的字串輸出,你可以下載JsJava-2.0.zip,引入其中的src/jsjava/text/DateFormat.js,或者直接引入jslib/jsjava-2.0.js,範例代碼如下:
var df=new SimpleDateFormat();//jsJava1.0需要使用DateFormat對象,不要弄錯就是了 df.applyPattern("yyyy-MM-dd HH:mm:ss"); var date=new Date(2007,3,30,10,59,51); var str=df.format(date); document.write(str);//顯示結果為:2007-04-30 10:59:51
通過上面的例子你可以看出,你需要做的就是指定pattern,那麼pattern中yyyy、MM等都表示什麼意思呢?如果你學習過Java的日期格式化,那麼你應該知道,那都是預留位置,這些預留位置都具有特殊的函數,例如y表示年,yyyy表示四個數位年份,例如1982,下面列舉一些pattern中支援的特殊字元及其含義(下面表格引自Java的官方文檔,做了適當修改):
G Era designator [url=]Text[/url] AD y Year [url=]Year[/url] 1996; 96 M Month in year [url=]Month[/url] July; Jul; 07 w Week in year [url=]Number[/url] 27 W Week in month [url=]Number[/url] 2 D Day in year [url=]Number[/url] 189 d Day in month [url=]Number[/url] 10 F Day of week in month [url=]Number[/url] 2 E Day in week [url=]Text[/url] Tuesday; Tue a Am/pm marker [url=]Text[/url] PM H Hour in day (0-23) [url=]Number[/url] 0 k Hour in day (1-24) [url=]Number[/url] 24 K Hour in am/pm (0-11) [url=]Number[/url] 0 h Hour in am/pm (1-12) [url=]Number[/url] 12 m Minute in hour [url=]Number[/url] 30 s Second in minute [url=]Number[/url] 55 S Millisecond [url=]Number[/url] 978
原文連結:點擊開啟連結