更改日期在 php table 中的显示方式

Changing the way date is displayed in php table

添加数据时,输入的格式为 dd-mm-yyyy,但在数据库中则显示为 yyyy-mm-dd。这不是问题,但是当将该数据拉回我的网站时,我希望日期以 dd-mm-yyyy 格式显示。我在数据表中显示数据。我目前使用的代码是:

while ($myrow = mysqli_fetch_array($result)):

$username   = $myrow["username"];
$date       = $myrow["date"];
$returned   = $myrow["returned"];

$table = '<tr>';

if ($returned == 'Yes'){ 
        $table.= '<td><div style="color: green;">'.$username.'</div>';
    } else if ($date < date("Y-m-d")) {
        $table.= '<td><div style="color: red;">'.$username.'</div>';
    } else{
        $table.= '<td><div style="color: blue;">'.$username.'</div>';
    }

if ($returned == 'Yes'){ 
        $table.= '<td><div style="color: green;">'.$date.'</div>';
    } else if ($date < date("Y-m-d")) {
        $table.= '<td><div style="color: red;">'.$date.'</div>';
    } else{
        $table.= '<td><div style="color: blue;">'.$date.'</div>';
    }

 if ($returned == 'Yes'){ 
        $table.= '<td><div style="color: green;">'.$returned.'</div>';
    } else if ($date < date("Y-m-d")) {
        $table.= '<td><div style="color: red;">'.$returned.'</div>';
    } else{
        $table.= '<td><div style="color: blue;">'.$returned.'</div>';
    }

echo $table;
endwhile;

从数据库中获取的所有数据都运行良好等等,只是好奇我缺少什么来更改日期格式。

非常感谢任何帮助。

好吧,您必须实际更改日期格式。

最简单的方法是将日期转换为时间戳,然后使用 date 函数以您想要的任何格式显示日期。您可以使用 strtotime function to turn it into a timestamp, and date 有很多显示选项。

您可以使用以下方法更改日期格式:

$formattedDate = date("d-m-Y", strtotime($myrow["date"]));

不要使用 $date 变量,而是使用 $formattedDate :-)

格式化日期:

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

$d = new DateTime($date);
$formatted= date_format($d, 'Y m d');  

直接来自 PHP documentation

d - 一个月中的第几天,带前导零的 2 位数字 - 01 到 31
m - 月份的数字表示,带前导零 - 01 到 12
Y - 年份的完整数字表示,4 位数字 - 1999 或 2003

所以你可能会为你想要做的事情做这样的事情。

$time = strtotime($timefromdb);
$formatted = date("d/m/Y", $time);

当涉及到这类事情时,通读文档将为您提供非常广泛的选择。

如果您不想在 PHP 中更改,您也可以使用 MySQL 查询来管理它。使用以下内容更新您的查询:

Select username,DATE_FORMAT(date,'%m-%d-%Y') as date,returned from TABLE.....
 while ($myrow = mysqli_fetch_array($result)):

    $username   = $myrow["username"];
    $date       = $myrow["date"];
    $returned   = $myrow["returned"];
    $color;

    $formattedDate = date("d-m-Y", strtotime($myrow["date"]));

    $table = '<tr>';

    if ($returned == 'Yes'){ 
            $color = "green";
        } else if ($date < date("Y-m-d")) {
            $color = "red";
        } else{
            $color = "blue";
        }


       $table.= '<td><div style="color: '.$color.';">'.$username.'</div></td>';
       $table.= '<td><div style="color: '.$color.';">'.$formattedDate.'</div></td>'
       $table.= '<td><div style="color: '.$color.';">'.$returned.'</div></td>';


    $table .= '<tr>';

    echo $table;
 endwhile;