【问题标题】:Format date within an echo在回显中格式化日期
【发布时间】:2013-07-03 22:48:18
【问题描述】:

我正在尝试格式化 MySQL 格式化日期 (YYYY-MM-DD) 并希望显示月份和年份,例如“2012 年 9 月”。

我的代码:

<?php echo htmlspecialchars($row["date"], ENT_QUOTES, "UTF-8"); ?>

有谁知道我如何做到这一点?

【问题讨论】:

标签: php html css date format


【解决方案1】:

您可以使用日期时间:

$date = date_create($row["date"]);
echo date_format($date, 'F Y');

【讨论】:

    【解决方案2】:

    如果您想将其保存为新变量以多次使用:

    $datetime = strtotime($row['date']);
    $mysqldate = date("M d ", $datetime);
    echo $mysqldate; 
    

    【讨论】:

      【解决方案3】:
      echo date('F Y', strtotime($row['date']));
      

      【讨论】:

      • 你应该为你的答案添加一些解释
      • 对不起,我的错。下次会更好:)
      【解决方案4】:

      你需要使用SQL函数DATE_FORMAT (date, format)

      查看此链接 http://www.w3schools.com/sql/func_date_format.asp

      【讨论】:

        【解决方案5】:

        直接从 SQL 中选择该格式,例如

        SELECT DATE_FORMAT(date, '%M %Y') AS formatted_date
        

        或者用php做(效率稍低):

        $formatted = date('F Y', strtotime($row['date']));
        

        【讨论】:

        • 像@nickb 建议的那样使用 DateTime 有什么问题吗?
        • 不。 DateTime 适用于较新的前瞻性代码,并且对于日期上的各种“数学”类型操作更容易处理。但是对于像这样简单的重新格式化,尤其是在输入格式干净/定义明确的情况下,日期/strtotime 更容易处理。
        【解决方案6】:

        您可以使用DateTime 来设置您喜欢的日期格式:

        $date = DateTime::createFromFormat('Y-m-d', $row["date"]);
        echo htmlspecialchars($date->format('F Y'), ENT_QUOTES, "UTF-8");
        

        所以有了这样的日期:

        $row['date'] = '2012-09-25';
        

        这个will print

        September 2012 
        

        【讨论】:

        • 精彩 - 完美运行。谢谢你!
        • 需要 createFromFormat 吗? $date = new DateTime($row['date']); echo $date->format("F Y"); ^ 这个可以代替吗?
        • @David - 如果日期字符串是on the list of supported date/time formats,则使用带有时间字符串的构造函数是完全可以接受的。
        猜你喜欢
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-02
        • 2019-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多