我們都知道在java和php語言中,有專門用于格式化日期對象的類和函數,例如java中的dateformat等等,通過這些類和函數,我們可以友善的将一個日期對象按照格式的要求輸出為字元串,例如對于同一個日期2006年12月25日,需要的顯示格式可能如下:
2006年12月25日,2006-12-25,12-25-2006等等。
在javascript之中,日期對象是date,那麼如何将一個日期對象按照定制的格式進行輸出呢?
可以現告訴你,date對象有有四個内置方法,用于輸出為字元串格式,分别為:
1)togmtstring,将一個日期按照gmt格式顯示
2)tolocalestring,将一個日期按照本地作業系統格式顯示
3)tolocaledatestring,按照本地格式顯示一個日期對象的日期部分
4)tolocaletimestring,按照本地格式顯示一個日期對象的時間部分
盡管javascript的date對象中内置提供了這些輸出為字元串的方法,但是這些字元串不是我們來控制格式的,是以如果我們需要我們自己定制的特殊格式,那麼又該怎麼辦呢?
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
week in month
2
d
day in year
189
day in month
10
f
day of week in month
e
day in week
tuesday; tue
a
am/pm marker
pm
h
hour in day (0-23)
k
hour in day (1-24)
24
hour in am/pm (0-11)
hour in am/pm (1-12)
12
minute in hour
30
s
second in minute
55
millisecond
978