廢話不多說,先把各種格式化方法貼給大家
代碼如下:
var myDate = new Date();
myDate.getYear(); //獲取當前年份(2位)
myDate.getFullYear(); //獲取完整的年份(4位,1970-????)
myDate.getMonth(); //獲取當前月份(0-11,0代表1月)
myDate.getDate(); //獲取當前日(1-31)
myDate.getDay(); //獲取當前星期X(0-6,0代表星期天)
myDate.getTime(); //獲取當前時間(從1970.1.1開始的毫秒數)
myDate.getHours(); //獲取當前小時數(0-23)
myDate.getMinutes(); //獲取當前分鐘數(0-59)
myDate.getSeconds(); //獲取當前秒數(0-59)
myDate.getMilliseconds(); //獲取當前毫秒數(0-999)
myDate.toLocaleDateString(); //獲取當前日期
var mytime=myDate.toLocaleTimeString(); //獲取當前時間
myDate.toLocaleString( ); //獲取日期與時間
可以說是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