我把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。
我把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。
寫入數據庫時使用date("Y-m-d H:i:s")
(24小時製表示法)。
否則,「PM」(或「AM」)部分會被截斷,讓您始終處於「AM」狀態。
我相信這個問題是由於您的日期格式選擇12小時的時間。因爲它們都是24小時格式(0-23),所以將小寫字母g更改爲「G」(無前導零)或「H」(帶前導零),而「g」是12小時格式(0-12 )。
您應該使用一個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小時。
你能解釋一下這個具體情況嗎? – 2011-05-23 20:45:38
謝謝。 24小時格式工作。 – DanielOlivasJr 2011-05-23 21:08:16
爲什麼不使用date(「Y-m-d,G:i:s」)?
你也可以改變你的服務器的時鐘,而不是等到下午來測試它。
應該是一個評論。 – 2011-05-23 20:44:31
您應該嘗試使用24小時日期時間格式插入MySQL。 MySQL可能會忽略日期字符串中的AM/PM,因此所有內容都保存爲AM。
$datecreated = date("Y-m-d H:i:s");
該OP認爲'A'會允許12小時的時間。這是否屬實。 :) – 2011-05-23 20:45:05
啊,當然..只是發現了真正的問題。現在我覺得很愚蠢:/ – SmokeyPHP 2011-05-23 20:48:24
對你的第二次嘗試不錯;) – 2011-05-23 20:54:21