時間的取得、修改、校正,以及擷取過去、未來的時間。
因為PHP取得的時間,是格林威治的時間:
$datetime = date ("Y- m - d / H : i : s");
echo $datetime ;    // 顯示時間
輸出結果: 2001-03-19 / 09:50:34 ( 系統所在時區 )
 
如果要將時間調成台灣時間,或其他時區的話,就勢必要做一些修正:
 
方法
$datetime = date ("Y-m-d H:i:s" , mktime(date('H')+8, date('i'), date('s'), date('m'), date('d'), date('Y'))) ;
echo $datetime ;    // 顯示時間
輸出結果: 2001-03-19 / 17:50:34 ( 台灣當地時區 )
 
最主要修改的,就是H的部份了,只要將後面的+8,修改為你要的時區與格林威治時區的差值,就可以取得正確的時間了。不過時間是以系統所在位置,也就是你的電腦時間。
 
方法二:
date_default_timezone_set('Asia/Taipei');
 
只要做一個時區的宣告,就可以不用擔心有沒有哪邊沒改到了。
 
如果說你的電腦時間可能不太準,那可以試試下面這個方法:利用網路來校正時間
$server = 'time.nist.gov';
$port = 13;

$fp = fsockopen($server, $port, $errno, $errstr, 30);
if (!$fp)
echo "$errstr ($errno)\n";
          else
              while (!feof($fp))
                   echo fgets($fp, 128);

fclose($fp);
 
接著是抓過去或未來的時間‧參考資料
首先,先把時間的各個部分分開來(date函數的各個參數):
$Y=date(Y);
$m=date(m);
$d=date(d);
$H=date(H);
$i=date(i);
$s=date(s);
 
再來,就是把東西組合起來,然後用mktime函數來做啦~
date( "Y年m月d日H時i分s秒", mktime($H,$i,$s,$m,$d,$Y) );
//將變數帶進mktime()裡,+、-可以調整
Ex.
date( "Y年m月d日H時i分s秒", mktime($H-1,$i,$s,$m,$d,$Y+1) );
//一年後的一小時前

以上。

arrow
arrow
    全站熱搜

    Joy 發表在 痞客邦 留言(0) 人氣()