方法一: 在PHP代碼中取得當前日期時間再插入數據庫
默認情況下,PHP解釋顯示的時間為“格林威治標准時間”,與我們本地的時間相差8個小時
,所以date("Y-m-d H:i:s")得出的時間比當前時間少了8個小時。
gmdate("Y-m-d H:i:s")函數得出的時間是經過與GMT相加減過的,能得到本地時間,但要在
PHP.ini中用date.timezone這個選項設置時區,但默認是關閉的,而且在部分PHP版本中無法
正常實現。
一個比較好的實現的方法,手動修正時差,如下:
$timeoffset = 8;
echo gmdate("Y-m-d H:i:s", mktime() + $timeoffset * 3600) . "<br>";
echo gmdate("Y-m-d H:i:s", time() + $timeoffset * 3600) . "<br>";
echo date("Y-m-d H:i:s", mktime() + $timeoffset * 3600) . "<br>";
echo date("Y-m-d H:i:s", time() + $timeoffset * 3600) . "<br>";
都輸出如下格式:2007-11-24 17:41:58
$t = gmdate("Y-m-d H:i:s", mktime() + 8 * 3600)
$sql = "insert into xxxx (addDateTime) values ($t)"
方法二: 在SQL語句中使用MYSQL內置的函數取得當前日期時間
使用now()函數
insert into xxxx (addDateTime) values (now())
小結:
相比上述兩種方法,使用MYSQL內置函數比較好
更多參考:
[轉載] PHP日期與時間函數庫
[轉載] PHP的日期時間函數date()