我正在從PHP文件中設置數據庫值。在PHP文件中,我有一個存儲unix時間戳值的字符串變量。將具有unix時間戳值的PHP字符串轉換爲MySQL時間戳值
MySql表我有一個架構,我必須將這些時間戳值存儲在時間戳數據類型的登錄字段中。
我試圖發送
date('Y-m-d G:i:s', strtotime($userLogin));
到我的數據庫,但所有它存儲是0000-00-00 00:00:00
我正在從PHP文件中設置數據庫值。在PHP文件中,我有一個存儲unix時間戳值的字符串變量。將具有unix時間戳值的PHP字符串轉換爲MySQL時間戳值
MySql表我有一個架構,我必須將這些時間戳值存儲在時間戳數據類型的登錄字段中。
我試圖發送
date('Y-m-d G:i:s', strtotime($userLogin));
到我的數據庫,但所有它存儲是0000-00-00 00:00:00
strtotime()用於將各種日期格式的字符串轉換爲UNIX時間戳。如果字符串已經是時間戳,那麼對於strtotime()而言,它看起來不像一個有意義的格式化日期/時間,並且會失敗。
如果字符串已經是一個時間戳,那麼您不需要對它進行更多的操作而不是將其轉換爲整數(嚴格來說,即使該步驟不應該是必需的,但是投射會將任何非數字字符,所以它不一般不疼投)
此外,MySQL是能夠分析UNIX時間戳(含FROM_UNIXTIME()的,我想,我必須看看它,以確保)
MySQL有此FROM_UNIXTIME()功能。
MySQL提供了FROM_UNIXTIME()
和UNIX_TIMESTAMP()
函數來將Unix時間戳轉換爲MySQL日期格式,反之亦然。
例子:
$sql = "INSERT INTO yourtable(date, ..., ...) VALUES (FROM_UNIXTIME($yourdate), ..., ...)";
如果$userLogin
持有timestamp
值比你不需要使用strtotime()
,
例如,這個應該工作 - >
$userLogin = time();
date('Y-m-d G:i:s', $userLogin);
我必須添加
$login = date('Y-m-d H:i:s',(int)($userLogin/1000));
它的工作...
您確認$ userLogin的值有效嗎? strtodate()可能返回FALSE(零)。要進行調試,您應該考慮將語句分爲兩步: 1)將strtotime()的返回值賦給一個變量,以便驗證它,並且使用新創建的變量調用date()。 – SetFreeByTruth 2012-07-11 22:23:58