星期日, 3月 15, 2009

PHP_mktime:設定時間

設定時間:mktime()


date()可做時間輸出的格式化,那可否設定時間呢?
mktime()就是負責這一件工作、

我們可以在mktime()內設定。我們來看mktime的格式:
mktime (小時,分鐘,秒數,月份,日期, 年份, 夏天日光節約時間)

看完上面mktime()參數的設定後,這裡以範例來做說明。我們將一一做成範例,

由範例就可知道參數的用途。首先,關於年-月-日的表示方式:

01: <html><head>

02: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

03: <title> mktime1</title></head>

04: <body><?

05: $day1 = mktime(0, 0, 0, 1, 2, 1970);

06: echo $day1."<br>";

07: $day2 = mktime(0, 0, 0, 4, 30, 2008);

08: echo $day2."<br>";

09: ?></body></html>

您會發現到輸出結果蠻奇怪的,那些數字代表什麼呢?mktime( )函數雖可設定時間,
但他輸出的值是從1970年1月1日開始,那一天是Unix誕生的日子。
我們要如何才能顯示出年月日呢?這時就需要date( )函數了。前一小節裡,我們透過

date( )函數將現在Server的時間以不同格式輸出,現在date()搭配mktime(),就可選擇特

定的時間做特定的輸出:

01: <html><head>

02: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

03: <title>mktime2</title></head>

04: <body><?

05: echo "2008年3月12日是週幾呢?是".date ("l", mktime(0,0,0,3,12,2008));

06: $tomorrow = mktime (0,0,0,date("m") ,date("d")+1,date("Y"));

07: $lastmonth = mktime (0,0,0,date("m")-1,date("d"), date("Y"));

08: $nextyear = mktime (0,0,0,date("m"), date("d"), date("Y")+1);

09: echo "明天是:".date("Y-m-j",$tomorrow)."<br>";

10: echo "上個月是:".date("Y-m-j",$lastmonth)."<br>";

11: echo "明年是:".date("Y-m-j",$nextyear)."<br>";

12: ?> </body></html>

適當地使用系統提供的函數,就可以加快網頁程式的撰寫與降低寫錯的機率

。但要提醒各位一點,PHP抓取的時間是Server的時間,而不是本機的時間,

所以如果Server放在美國,但您在台灣上網,顯示的時間會是美國時間,而

不是台灣的時間,如果要抓取使用者電腦的時間,就要使用java script,而

非PHP。

沒有留言:

張貼留言