<?php date_default_timezone_set('UTC'); // 設置默認的時區
$utc = new DateTimeZone('UTC'); // UTC標準時區 $userTZ = new DateTimeZone('GMT+8'); // 假設用戶設置的時區是東八區
echo '輸出當前的UTC時間:'; $time = new DateTime(); echo $time->format('Y-n-j H:i:s'); echo '<br>';
echo '輸出當前的用戶時區時間:'; $time = new DateTime(); $time->setTimezone($userTZ); echo $time->format('Y-n-j H:i:s'); echo '<br><br>';
echo '規定資料庫中始終保存UTC時間。<br>'; $timeFromDB = '2015-4-14 12:02:03'; // 假設這就是從資料庫某欄位中讀取的時間值 echo "現在從資料庫中取出一個時間記錄:{$timeFromDB},然後按用戶所設時區顯示出來:"; $time = new DateTime($timeFromDB); $time->setTimezone($userTZ); // 轉換成用戶所設的時區 echo $time->format('Y-n-j H:i:s'); // 顯示出來 echo '<br><br>';
echo '現在用戶按自己的時區輸入了一個時間,現在要把這個時間按UTC時區存入資料庫。<br>'; $input = '2010-7-6 11:23:16'; echo "假設用戶輸入的是:$input"; $time = new DateTime($input, $userTZ); $time->setTimezone($utc); // 轉換為UTC時間 $sql = "INSERT INTO ... (...) VALUES ('" . $time->format('Y-n-j H:i:s') . "');"; // 把UTC時間存入資料庫中 echo "<br>那麼要執行的SQL語句則是:<br>$sql<br>"; ?>
|