2012-03-20 95 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