【问题标题】:How to change time configuration?如何更改时间配置?
【发布时间】:2013-12-18 21:35:20
【问题描述】:

是否可以更改 date() 的配置;已经插入到数据库中了吗?

例如: 现在日期显示如下:2013 年 12 月 12 日 12:28pm

有没有办法只显示我从中选择的部分?比如“12 月 12 日”。

尝试在 PHP 中完成这项工作。

谢谢!

【问题讨论】:

标签: php mysql sql date time


【解决方案1】:

使用date() 函数。如果您尝试格式化数据库条目中的值,请获取它并使用strtoupper(date('j M',strtotime($row['column']))) 显示它(这将输出您正在寻找的格式并将所有内容都大写,就像您提供的示例一样)

【讨论】:

    【解决方案2】:

    不要将日期/时间值(尤其是格式过于冗长的)存储为数据库中的字符串,因为您失去了正常维护和查询数据的能力。为此使用适当的日期data typesDATETIMETIMESTAMP 甚至INT,如果您以秒为单位存储 Unix 纪元时间)。

    您可以通过以下方式将数据类型从VARCHAR 更改为DATETIME

    UPDATE table_name
       SET column_name = STR_TO_DATE(column_name, '%M %D, %Y, %h:%i %p');
    ALTER TABLE table_name CHANGE column_name column_name DATETIME;
    

    这里是SQLFiddle演示

    现在您可以通过date 列正确轻松地过滤和排序数据,例如:

    SELECT * 
      FROM table_name
     WHERE column_name >= '2013-12-17'
       AND column_name < '2013-12-18'
     ORDER BY column_name DESC;
    

    现在您可以使用 DATE_FORMAT() 函数轻松呈现您需要的日期时间值,例如:

    SELECT DATE_FORMAT(column_name, '%d %b') formatted_date
      FROM table_name;
    

    样本输出:

    | FORMATTED_DATE | |----------------| | 12 月 17 日 | | 12 月 18 日 |

    这里是SQLFiddle演示


    与此同时,如果您需要立即的解决方案,您可以这样做

    SELECT DATE_FORMAT(STR_TO_DATE(column_name, '%M %D, %Y, %h:%i %p'), '%d %b') formatted_date
      FROM table_name;
    

    这里是SQLFiddle演示

    【讨论】:

      【解决方案3】:

      要使用您的格式获取日期,您将尝试:

      <?php
      echo date('d M');
      ?>
      

      但是,您需要更新表中的每一行以更改它们的值。

      【讨论】:

        猜你喜欢
        • 2010-11-20
        • 1970-01-01
        • 2012-11-02
        • 1970-01-01
        • 2019-06-29
        • 2015-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多