在mysql中有三種時間字段類型:DATETIME,DATE和TIMESTAMP。
DATETIME以YYYY-MM-DD HH:MM:SS格式的字符串來保存數據;
DATE則是只有年月日以YYYY-MM-DD形式的字串;
TIMESTAMP類型和PHP中的TIMESTAMP類型名字一樣,但是兩者基本上是不同的。
PHP是延用了UNIX時間簽的類型為一個整數,
而在mysql中TIMESTAMP字段則是隨着記錄變化而一個自動更新為當時時間的DATETIMP字段。在mysql4.1版本之后TIMESTAMP格式DATETIME格式基本上是一致了。
於是常常需要在php和msql中對兩種格式的Timestamp進行轉換。轉換方法總結一下:
第一種方法:使用 date()和strtotime()函數
$mysqltime=date('Y-m-d H:i:s',$phptime);
$phptime=strtotime($mysqldate);
第二種方法:在查詢語句中使用mysql函數轉換:UNIX_TIMESTAMP(DATETIME=>PHP TIMESTAMP)和FROM_UNIXTIME(PHP TIMESTAMP=>DATETIME).
$sql="SELECT UNIX_TIMESTAMP(datetimefield) FROM table WHERE ...";
$sql="UPDATE table set datetimefield=FROM_UNIXTIME($phptime) WHERE ..";
第三種方法:就是mysql中使用整數字段來保存php的timestamp類型。