2010-08-04 61 views
0

什麼是從MySQL時間戳(YYYY-MM-DD HH:MM:SS)轉換爲我自己選擇的格式,如「2010年8月5日」的正確方法?我怎樣才能使MySQL時間戳PHP日期()兼容?mysql timestamp convertion

回答

4

有兩種方法...

首先,你可以做到這一點與strtotime() PHP ...

$time = strtotime('2010-05-05 05:05:05'); 
echo date('F j, Y', $time); 

或者,你可以用UNIX_TIMESTAMP()轉換爲UNIX時間在MySQL:

SELECT UNIX_TIMESTAMP(`your timestamp column`) FROM blahblah.... 

然後你需要在PHP中取得它後用date()格式化它。

或者,你可以做整個事情的權利在MySQL與DATE_FORMAT()

SELECT DATE_FORMAT(`your timestamp column`, '%M %e, %Y') FROM ... 
+0

壞主意與MySQL做出來。您可以隨時隨地使用數據庫選擇的時區,這可能是也可能不是PHP正在使用的時區(更不用說它更可能不會將時區數據設置爲最新)。 – Artefacto 2010-08-04 13:02:00

+1

@Artefacto根本不是一個壞主意。事實上,這是一個非常好的主意。事實上,我只相信MySQL的日期(因爲複製和負載平衡)。如果你在PHP和MySQL之間進行混合,它可能會導致頭痛,但只要你選擇一個並堅持下去,或者正確測試,你將會很好...... – ircmaxell 2010-08-04 13:04:14

+0

什麼?您相信MySQL具有日期*,因爲複製和負載平衡?複製和負載平衡需要做些什麼來解析/格式化日期?混合使用PHP和MySQL是災難和信任的祕訣MySQL單獨使用並不是很好(它是否能夠正確處理時區,夏令時和規則更改,並且可以使規則始終保持最新狀態(全年?)( http://derickrethans.nl/storing-date-time-in-database.html))。 – Artefacto 2010-08-04 13:10:19

1

你可以擁有的MySQL返回它作爲一個時代的時間戳的PHP的日期函數可以處理或使用以下功能:

$epoch = strtotime('YYYY-MM-DD HH:MM:SS');

php Manual: strtotime

1

第三種選擇:使用MySQL的DATE_FORMAT()函數(雖然我更喜歡ircmaxell的方式)