1,取得本地時間戳
php應用mktime()函數將一個時間轉換為UNIX的時間戳記值。時間戳記是一個長整數,包含了從UNIX 紀元(1070年1月1日),好多時間都是按這個為起始點的,有興趣的朋友可以搜搜看看,裡面肯定有故事哦。
mktime()函數語法格式如下:
int mktime(int time,int minute,int second,int month,int day,int year,int [is_dis])
mktime()函數的參數說明如下表:
2,取得時間和日期
在php中透過time()函數目前的UNIX時間戳。文法格式如下:
int time(void)
在php中date()函數用於取得目前的時間和日期。 date()函數格式如下:
date(string format,int timestamp)
關於日期格式函數如下表所示:
getdate()函數主要用於取得日期中的相關資訊。 getdate()格式如下:
array getdate(int timestamp)
傳回的陣列元素如下表所示:
具體範例程式碼如下:
<code><span><span><?php</span><span>$array</span> = getdate(); <span>echo</span><span>$array</span>[<span>'year'</span>].<span>"-"</span>.<span>$array</span>[<span>'mon'</span>].<span>"-"</span>.<span>$array</span>[<span>'mday'</span>]; <span>?></span></span></code>
運作結果如下:
3,檢查日期的有效性
檢查日期的有效性主要透過 checkdate()函數來實現的,具體語法如下:
bool checkdate(int month,int day,int year)
下面我們用程式碼來實作一下:
<code><span><?php</span><span>$year</span> =<span>2011</span>; <span>$month</span> =<span>2</span>; <span>$day</span> =<span>31</span>; <span>echo</span> var_dump(checkdate(<span>$day</span>,<span>$month</span>,<span>$year</span>)); <span>?></span></code>
運行結果下:
4,輸出格式化的時間和日期
主要是透過date() 函數來實現的。
格式參數如下:
5,先是本地化的時間和日期
時間和日期的本地化主要是透過 setlocale()函數來實現的。
具體文法如下:
string setlocale(string category,string locale)
參數category 的選項如下表所示:
參數locale如果為空,就會使用系統的變數的locale或lang的值,否則就會套用locale所指定的在地化環境。如en_US為美國在地化環境,chs指簡體中文,cht指繁體中文。
strftime()函數
strftime()函數根據本地化環境來格式化輸出的時間和日期
文法格式如下:
string strftime( string format,int timestamp)
具體範例程式碼如下:
<code><span><?php</span>setlocale(LC_ALL,<span>"en_US"</span>); <span>echo</span><span>"美国格式:"</span>.strftime(<span>"Today is %A"</span>).<span>"\n"</span>; setlocale(LC_ALL,<span>"chs"</span>); <span>echo</span><span>"中文简体格式:"</span>.strftime(<span>"今天是:%A"</span>).<span>"\n"</span>; setlocale(LC_ALL,<span>"cht"</span>); <span>echo</span><span>"繁体中文格式:"</span>.strftime(<span>"今天是 :%A"</span>).<span>"\n"</span>; <span>?></span></code>
int strtotime(string time,[,int time])
函數有兩個參數,如果time是絕對時間,那麼now參數不起作用。如果time參數的格式為相對時間,那麼對應的時間就是由now來提供的。如果沒有提供now時間,那麼對應的時間就是目前的時間。如果解析失敗回傳false。
範例程式碼如下:
<code><span><span><?php</span><span>echo</span> strtotime(<span>"now"</span>).<span>"\n"</span>; <span>//当前时间的时间戳</span><span>echo</span><span>"输出时间:"</span>.date(<span>"Y-m-d H:i:s"</span>,strtotime(<span>"now"</span>)).<span>"\n"</span>; <span>//按照格式要求输出当前的时间</span><span>echo</span> strtotime(<span>"21 May 2009"</span>).<span>"\n"</span>; <span>//输出指定时间的时间戳</span><span>echo</span><span>"输出时间:"</span>.date(<span>"Y-m-d H:i:s"</span>,strtotime(<span>"21 May 2009"</span>)).<span>"\n"</span>; <span>//按照格式输出指定时间的时间</span><span>echo</span> strtotime(<span>"+3 day"</span>).<span>"\n"</span>; <span>// 输出三天以后的时间戳</span><span>echo</span><span>"输出时间:"</span>.date(<span>"Y-m-d H:i:s"</span>,strtotime(<span>"+3 day"</span>)).<span>"\n"</span>; <span>//按照格式输出三天后的时间</span><span>echo</span> strtotime(<span>"+1 week"</span>).<span>"\n"</span>; <span>//输出一周以后的时间戳</span><span>echo</span><span>"输出时间:"</span>.date(<span>"Y-m-d H:i:s"</span>,strtotime(<span>"+1 week"</span>)).<span>"\n"</span>; <span>//按照格式输出一周以后的时间</span><span>echo</span> strtotime(<span>"+1 week 2 days 3 hours 4 minutes"</span>).<span>"\n"</span>; <span>echo</span> strtotime(<span>"next week"</span>).<span>"\n"</span>; <span>echo</span> strtotime(<span>"last Monday"</span>).<span>"\n"</span>; <span>?></span></span></code>