在mysql中更改日期的格式

时间:2014-05-26 20:52:00

标签: mysql date-formatting

我有一个数据库,我将事件存储在名为news的表中,其中包含以下字段:(newsid(int),title(varchar),date(date),location(varchar),text(text)。我是尝试按照最新的一个在顶部显示这些事件,我希望日期在订购后以5/6/2014的形式显示。我尝试了FORMAT功能,但它不适用于我。提前感谢! 包括( “config.php中”);

//load all news from the database and then OREDER them by newsid
          $result = mysqli_query($connect, "SELECT * FROM news ORDER BY date DESC");
    //a loop and get all news from the database

          echo '<div id="backg">';  
         while($row = mysqli_fetch_array($result))
         {//begin of loop
           //now print the results:
           echo '<br><br>';
           echo '<div class="div1">';
           echo '<p1><br><b> ';
           echo $row['title']. '</b></p1></div><br>';

           echo '<div class = "div2" style = " height : auto; min-height : 50px; height:auto !   important;height:30px;">';
           echo '<b>Time: '.'</b>';
           echo $row['time'] . '<br>';
           echo '<b>Date: '.'</b>';
           echo $row['date']. '<br>';
           echo '<b>Location: '.'</b>';
           echo $row['location'] . '<br><br>';
           echo '<p3 class="indent"><b>'.str_replace('\\n', '<br/>', $row['text1']). '</b></p3></div>';
          }

1 个答案:

答案 0 :(得分:0)

您可以使用MySQL DATE_FORMAT函数格式化结果集中的日期,并使用“纯”无格式日期进行排序:

SELECT newsid, title, FORMAT_DATE(date, '%m/%e/%Y') AS DateFmt, location, text
FROM news
ORDER BY date DESC

唯一的PHP代码更改将是您显示日期时。您需要回显格式化的值,在上面的查询中我将其命名为DateFmt,因此请替换此...

echo $row['date']. '<br>';

......用这个:

echo $row['DateFmt']. '<br>';

此更改意味着您需要在SELECT列表(SELECT a, b, c, ...而不是SELECT *)中指定每个列,但无论如何,在生产代码中命名列都被视为良好做法。