2011-05-23 74 views
3

我把MySQL的當前日期和時間使用PHP時間不是現在顯示PM,只有AM

$datecreated = date("Y-m-d, g:i:s A"); 

然後顯示給用戶與

$datecreated = date('n-j-Y, g:i:s A', strtotime($row['datecreated'])); 

一切都很正常,除了時間總是AM。我已經在早上和下午測試過了,現在仍然是AM。

回答

3

寫入數據庫時​​使用date("Y-m-d H:i:s")(24小時製表示法)。
否則,「PM」(或「AM」)部分會被截斷,讓您始終處於「AM」狀態。

0

我相信這個問題是由於您的日期格式選擇12小時的時間。因爲它們都是24小時格式(0-23),所以將小寫字母g更改爲「G」(無前導零)或「H」(帶前導零),而「g」是12小時格式(0-12 )。

+1

該OP認爲'A'會允許12小時的時間。這是否屬實。 :) – 2011-05-23 20:45:05

+0

啊,當然..只是發現了真正的問題。現在我覺得很愚蠢:/ – SmokeyPHP 2011-05-23 20:48:24

+0

對你的第二次嘗試不錯;) – 2011-05-23 20:54:21

2

您應該使用一個DATETIME字段,它以24小時格式存儲日期和時間。

您可以使用MySQL NOW功能來存儲當前時間:

INSERT INTO mytable 
(mydatefield) 
VALUES 
(NOW()) 

如果您需要做的是在PHP中,你可以這樣做:

$datecreated = date('Y-m-d H:i:s'); 

這將其存儲在24-小時時間格式。然後,您可以在選擇函數後使用PHP date函數或使用MySQL DATE_FORMAT函數將其格式化爲12小時。

+0

你能解釋一下這個具體情況嗎? – 2011-05-23 20:45:38

+0

謝謝。 24小時格式工作。 – DanielOlivasJr 2011-05-23 21:08:16

0

爲什麼不使用date(「Y-m-d,G:i:s」)?

0

你也可以改變你的服務器的時鐘,而不是等到下午來測試它。

+1

應該是一個評論。 – 2011-05-23 20:44:31

0

您應該嘗試使用24小時日期時間格式插入MySQL。 MySQL可能會忽略日期字符串中的AM/PM,因此所有內容都保存爲AM。

$datecreated = date("Y-m-d H:i:s");