PHP TimeZone Set
今天在用Mac上傳zip檔,上去Mac的Server的時候跳了一堆的錯誤!!
很神奇的Windows Server就不會跳錯誤~囧
不知道為什麼他跳的時間怪怪的,所以找了一篇設定時區的來用一下!
重點其實就是黃色那行~
每天都在Mac和Windows之間混戰!
在PHP插入資料庫的時候,常常都會有個欄位 他的名子部外乎就是 time
PHP中有許多可以取得time的function
1.time()
會回傳從 January 1 1970 00:00:00 GMT 這個時間點開始計算 到現在的 秒數
2.date(string $format [, int $timestamp ] )
會把第二個參數的數字(單位為秒,預設為time() )轉成日期的string,第一個就是你要他回傳顯示的string格式,格式有很多可以選詳細情看http://php.net
這邊貼幾個從php.net中別人寫的範例
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
date('Y-m-d H:i:s')-->這個我自己在用的 2009-12-08 14:47:32
不過還呼叫完之後,原本很高興但是仔細一看
奇怪!!怎麼跟右下小的小時鐘不一樣= =
原來是time zone的問題 他預設的是 January 1 1970 00:00:00 GMT
台北的話還要+8小時
方法有很多,可以暴力自己直接加八小時
也可以改變他的time zone
沒錯!就是這個
在PHP裡面加下面這一行
date_default_timezone_set('Asia/Taipei');
這樣他就會加八小時囉
另外,也可以去設定php.ini檔的date.timezone = Asia/Taipei
這也是一辦法
還有一個很有用的function
int strtotime ( string $time [, int $now ] )
這可以將date所產生出來的string轉成秒數
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
這個也很好用
也是把數字轉成秒數
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
可以個別的填上 年 月 日 h m s
很神奇的Windows Server就不會跳錯誤~囧
不知道為什麼他跳的時間怪怪的,所以找了一篇設定時區的來用一下!
重點其實就是黃色那行~
每天都在Mac和Windows之間混戰!
在PHP插入資料庫的時候,常常都會有個欄位 他的名子部外乎就是 time
PHP中有許多可以取得time的function
1.time()
會回傳從 January 1 1970 00:00:00 GMT 這個時間點開始計算 到現在的 秒數
2.date(string $format [, int $timestamp ] )
會把第二個參數的數字(單位為秒,預設為time() )轉成日期的string,第一個就是你要他回傳顯示的string格式,格式有很多可以選詳細情看http://php.net
這邊貼幾個從php.net中別人寫的範例
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
date('Y-m-d H:i:s')-->這個我自己在用的 2009-12-08 14:47:32
不過還呼叫完之後,原本很高興但是仔細一看
奇怪!!怎麼跟右下小的小時鐘不一樣= =
原來是time zone的問題 他預設的是 January 1 1970 00:00:00 GMT
台北的話還要+8小時
方法有很多,可以暴力自己直接加八小時
也可以改變他的time zone
沒錯!就是這個
在PHP裡面加下面這一行
date_default_timezone_set('Asia/Taipei');
這樣他就會加八小時囉
另外,也可以去設定php.ini檔的date.timezone = Asia/Taipei
這也是一辦法
還有一個很有用的function
int strtotime ( string $time [, int $now ] )
這可以將date所產生出來的string轉成秒數
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
這個也很好用
也是把數字轉成秒數
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
可以個別的填上 年 月 日 h m s
留言
張貼留言