2011-07-25 188 views
4

現在我有這樣的代碼:店unix時間戳到MySQL

$mysqldate = date(time()); 

mysql_query("INSERT INTO permissions (date) 
VALUES ('$mysqldate')"); 

我逃跑之前,我還插入,但我的問題是,歲月不饒人存儲爲全0。我想知道什麼列數據類型在MySQL將存儲是這樣的:

1311602030 

Unix時間戳,然後將適當允許我通過查詢最近的日期排序。

+0

任何理由,你爲什麼不想使用MySQL時間戳? – Jacob

+0

「日期」列的數據類型是什麼?您正試圖插入一個整數。此外,我強烈建議使用DATETIME或TIMESTAMP列而不是存儲整數。您可以使用MySQL函數NOW()將當前時間插入到DATETIME/TIMESTAMP列中。 – TehShrike

回答

11

如果在數據庫中timestamp列的類型是INTEGER,你可以做

mysql_query("INSERT INTO permissions (date) VALUES ('".time()."')"); 

作爲整數值,您還可以執行排序操作並將其通過date()函數從PHP轉換回可讀的日期/時間格式。 如果在數據庫中的時間戳列的類型是DATETIME,你可以做

mysql_query("INSERT INTO permissions (date) VALUES ('".date('Y-m-d H:i:s')."')"); 

mysql_query("INSERT INTO permissions (date) VALUES (NOW())"); 
0

嘗試:

mysql_query("INSERT INTO permissions (date) VALUES ('".$mysqldate."')"); 
0

日期()函數需要一個字符串作爲第一參數,它是格式。 time()應該是第二個參數,如:date('Y-m-d H:i:s',time())。這將返回一個字符串,您可以使用DATETIME列。除此之外,如果你想存儲一個unix時間戳,只需使用一個INT列。所以你可以直接存儲time()的結果,而不需要調用日期。 (或者,正如我之前所說的,使用date()使用有效格式字符串格式化時間戳,並使用DATE,DATETIME或TIMESTAMP列)。見:http://www.php.net/manual/en/function.date.phphttp://dev.mysql.com/doc/refman/5.1/en/datetime.html

編輯:0您所看到的,在那裏,因爲MySQL並沒有recognice時使用的列的格式(因此,如果您正在使用DATE列,但你傳遞了錯誤的格式,它不是recogniced,所以0被保存)

0

嘗試:

$mysqldate = date('Y-m-d H:i:s'); 
mysql_query("INSERT INTO permissions (date) VALUES ('$mysqldate')");