2012-03-20 91 views
1

當我直接回顯從PHP數據庫中檢索到的時間戳值時,我在屏幕上看到了這個值。如何在PHP中格式化MySQL中的時間戳?

2012-04-01 12:02:00 

在PHP中解析此時間戳字符串的有效方法是什麼?我應該使用正則表達式還是爆炸來將此時間戳轉換爲兩個字符串並解析每一個(日期和時間)?

有沒有更簡化和標準的方法來做到這一點?

最後,我想將此時間戳記顯示爲:12:02 on April 1, 2012。在此日期模式

+0

的可能重複[什麼是格式化從SQL PHP中的時間戳最簡單的方法是什麼?] (http://stackoverflow.com/questions/238071/what-is-the-simplest-way-to-format-a-timestamp-from-sql-in-php) – 2012-03-20 06:36:02

回答

1

試試這一個。

$result = mysql_query("SELECT date FROM times;"); 
    while ($row = mysql_fetch_array($result)) { 
     echo date("g:i a F j, Y ", strtotime($row["date"])) . "<br />"; 
    } 
2

查看date()strtotime()的功能。

在你的榜樣

這將是

date("H:i on F d, Y",strtotime("2012-04-01 12:02:00")); 

,如果您使用的是更高版本的PHP 5.3.0比你可以使用date_parse_from_format()了。在這種情況下:

$parsed = date_parse_from_format("Y-m-d H:i:s","2012-04-01 12:02:00"); 
$new = mktime(
     $parsed['hour'], 
     $parsed['minute'], 
     $parsed['second'], 
     $parsed['month'], 
     $parsed['day'], 
     $parsed['year'] 
); 
date("H:i on F d, Y", $new); 
+0

'date()期望參數2很長,給出的數組' – Dan 2014-05-30 00:32:42

+1

謝謝你指出@ Silver89。我已經修復了第二種方法。 – 2014-05-30 10:02:12