2012-10-28 144 views
0

我要保存到數據庫中的一個給定的日期格式如下:MySQL的插入到日期時間不outputing正確的時間

date('Y-m-d H:i:s') 

使用datetime數據類型,它輸出:

2012-10-29 00:18:14 

要檢查它是否給正確的輸出,我給我的表添加一個時間戳,它返回插入/更新的當前日期和時間,它返回:

2012-10-29 07:18:14 

我懷疑我的格式有問題。

+0

附加:當我使用日期('Y-m-d h:i:s')格式時,輸出是2012-10-29 12:34:16。 im當前正在開發的站點只在localhost中。 – Orvyl

回答

2

聽起來像是一個時區問題。

您可以使用date_default_timezonedate.timezone ini設置讓PHP使用與MySQL相同的時區。

你可以看到MySQL的時區有:

select @@session.time_zone; 

                                                                 

+0

非常感謝。幫助很大。順便說一句,當我粘貼**選擇@@ session.time_zone; **,它返回一個字**系統**,並沒有給我一個時區。 – Orvyl

0

你一定要使用此格式:date('Y-m-d H:i:s')根據PHP手冊(http://php.net/manual/en/function.date.php) - 「H」用於24小時時間格式,「h」用於12小時格式,mysql將使用24小時時鐘。 MySQL標準格式爲「Y-m-d H:i:s」

但是,您在這裏遇到了時區。我敢打賭,你距離UTC有7小時。嘗試設置你的時區第一:

date_default_timezone_set('UTC');或任何你想要的時區。

+0

是的,這確實是時區問題。感謝你的迴應。我只是將此代碼http://philsturgeon.co.uk/blog/2009/12/CodeIgniter-on-PHP-5.3添加到網站的主索引中。 btw我目前正在使用代碼點火器。 – Orvyl