【问题标题】:formatting date field from MYSQL从 MYSQL 格式化日期字段
【发布时间】:2011-04-20 13:41:15
【问题描述】:

我在我的 MYSQL 表中使用 DATE 字段,并在 php 页面上将其拉出。问题是它显示为“2011-04-23”

有没有办法可以将其重新格式化为 23/04/2011?

谢谢:)

【问题讨论】:

    标签: mysql date format


    【解决方案1】:
    date("d/m/Y", strtotime("2011-04-23"));
    

    应该这样做

    date() strtotime()

    【讨论】:

    • 问题是我需要将它以这种格式保存在数据库中,以便我可以使用它来订购,但是当我从数据库中提取数据时,我需要将其转换为可读版本如果这有意义吗?
    • 是的,那么你需要上面的 elvenbyte 解决方案,它会在仍在数据库中时对其进行格式化,即 (MYSQL DATE_FORMAT)。只是为了澄清。我有一种感觉,您将日期字段存储在 varchar() 中?您应该将日期字段存储在日期或日期时间字段中,然后排序就没有问题。 编辑: 实际上,忽略它。您正在使用日期字段。那为什么排序有问题呢?您应该能够排序(无论数据库格式如何)...然后以 PHP 格式使用(date(), strtotime());
    • 很高兴听到 :) 我刚刚在那里重新阅读了我的第二条评论,有点乱,很高兴你明白了!
    【解决方案2】:

    DATE_FORMAT(日期,格式)

    看这里:http://dev.mysql.com/doc/refman/5.0/es/date-and-time-functions.html

    【讨论】:

      【解决方案3】:

      假设变量 $date 包含你的 MySQL 数据:

      $date = '2011-04-23';
      $timezone = 'Europe/London'; // this is optional argument
      
      $formatted = DateTime::createFromFormat('Y-m-d', $date, new DateTimeZone($timezone));
      
      // or without the optional timezone - where php will assume the default timezone from your OS
      
      $formatted = DateTime::createFromFormat('Y-m-d', $date);
      
      echo $formatted->('d/m/Y');
      

      【讨论】:

        猜你喜欢
        • 2013-08-13
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 2018-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        相关资源
        最近更新 更多