【问题标题】:PHP convert date from a MySQL queryPHP从MySQL查询转换日期
【发布时间】:2010-08-17 21:01:30
【问题描述】:

我认为这是一个简单的问题。我们有一个带有DATE 字段的 MySQL 数据库,日期以美国格式存储 (2010-06-01)。

在我将显示日期的 PHP 页面中,我只想将此日期转换为英国格式 (01-06-2010)。

感谢任何帮助和建议!

谢谢,

荷马。

【问题讨论】:

    标签: php mysql date


    【解决方案1】:

    您没有指定并且您的示例模棱两可,但我假设您正在谈论以日-月-年格式输出。您可以使用 strtotime 将字符串日期解析为 unix 时间戳,然后将该时间戳连同您希望输出日期的格式一起提供给 date

    date("d-m-Y", strtotime($date_from_mysql));
    

    date 的手册页列出了您可以提供的所有格式选项。在这种情况下,d 将日期表示为零填充数字,m 将月份表示为零填充数字,Y 将年份表示为四位数字。任何对date 没有特定含义的字符都会按原样出现。

    【讨论】:

    • +1。不过,从 OP 的 MySQL 示例日期来看,它可能是 m-d-Y。
    • @gclaghorn MySQL DATE 格式为 'YYYY-MM-DD' (dev.mysql.com/doc/refman/5.6/en/datetime.html)。因此,如果 2010-06-01 是 MySQL DATE,则表示 2010 年 6 月 1 日(因此 01-06-2010 是 DD-MM-YYYY)。
    • 完美 - 谢谢丹尼尔 - 如果问题有点模棱两可,我们深表歉意。
    • 最简单的最佳答案。我讨厌两行代码这么简单的任务。谢谢兄弟
    【解决方案2】:

    您可以直接从 mysql 使用 DATE_FORMAT() 函数来完成。 例如:“SELECT DATE_FORMAT(date_column,'%d-%m-%Y') as my_formated_date;”会做你需要的,只要确保在 fetch 方法 my_formated_date 列中使用

    【讨论】:

      【解决方案3】:

      你可以用这个函数解析日期:

      http://php.net/manual/en/function.strtotime.php

      它将返回一个整数,即自 1970 年以来的秒数(称为 Unix 时间戳)。

      然后使用此函数以任何您喜欢的方式格式化该数字:

      http://ca3.php.net/manual/en/function.date.php

      【讨论】:

        【解决方案4】:

        您还可以使用 DateTime::createFromFormat 功能在 PHP 中创建 Date 对象。

        <?php
            $date = DateTime::createFromFormat('Y-m-d', $sql_date);
            echo $date->format('d-m-Y');
        ?>
        

        【讨论】:

        • 快速编辑。以为我有一个流浪撇号,结果我错过了另一个。
        猜你喜欢
        • 2011-06-12
        • 1970-01-01
        • 1970-01-01
        • 2010-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多