【问题标题】:How can I format a timestamp from MySQL in PHP?如何在 PHP 中格式化 MySQL 的时间戳?
【发布时间】:2012-03-20 06:32:49
【问题描述】:

当我直接回显从 PHP 数据库中检索到的时间戳值时,我在屏幕上看到了这一点。

2012-04-01 12:02:00

在 PHP 中解析这个时间戳字符串的有效方法是什么?我应该使用正则表达式还是爆炸来将此时间戳转换为两个字符串并解析每个字符串(日期和时间)?

有没有更精简和标准的方法来做到这一点?

最后,我想将此时间戳表示为:12:02 on April 1, 2012

【问题讨论】:

标签: php mysql timestamp


【解决方案1】:
date('H:i on F d, Y',strtotime('2012-04-01 12:02:00'))

这里有更多关于日期模式的信息:http://php.net/manual/en/function.date.php

【讨论】:

    【解决方案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);
    

    【讨论】:

    • date() expects parameter 2 to be long, array given
    • 感谢@Silver89 指出这一点。我已经修复了第二种方法。
    【解决方案3】:

    试试这个。

    $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 />";
        }
    

    【讨论】:

      【解决方案4】:

      单行是date_create_from_format('H:i on F d, Y', $timestamp_value)

      在此处了解更多信息:http://www.php.net/manual/en/datetime.createfromformat.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-03
        • 1970-01-01
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 2011-01-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多