dpzbh1779 2017-08-02 16:41
浏览 25
已采纳

如何仅使用PHP在表中显示日期而不是时间

This is what my table currently looks like:

enter image description here

This is the corresponding PHP code:

                        <?php
                            //include 'database.php';
                            $pdo2 = Database::connect();
                            $sql2 = "SELECT id,
                                    full_name,
                                    owner_name awardee,
                                    owner awardee_email,
                                    (select concat(user_name,' ',user_last_name) from users where email = who_created) awarder,
                                    creation_time
                                    FROM awards, award_types
                                    where who_created = ? and awards_type=type_id";
                            $q2 = $pdo->prepare($sql2);
                            $q2->execute(array($_COOKIE["email"]));
                            $date = date('Y-m-d', strtotime($date));
                            foreach ($q2 as $row) {
                                echo '<tr>';
                                echo '<td>'. $row['id'] . '</td>';
                                echo '<td>'. $row['full_name'] . '</td>';
                                echo '<td>'. $row['awardee'] . '</td>';
                                echo '<td>'. $row['awardee_email'] . '</td>';
                                echo '<td>'. $row['awarder'] . '</td>';
                                echo '<td>'. $row['creation_time'] . '</td>';
                                echo '<td><a class="btn" href="DeleteAward.php?id='.$row['id'].'">Delete Award</a></td>';
                                echo '</tr>';
                           }
                           Database::disconnect();
                          ?>

I want to only display the date, not time, under the "Date" column. I read from other posts that I need to use some sort of date(creation_time) or DATE_FORMAT(creation_time) command, but I tried both and they just make my "Date" column blank.

I suspect that I'll need to change the echo '<td>'. $row['creation_time'] . '</td>'; line as well, but I was not able to find any guidelines on how to do so. Any help would be greatly appreciated!

  • 写回答

1条回答 默认 最新

  • douyan4243 2017-08-02 16:45
    关注

    There's two ways to go about it:

    The MySQL way:

    SELECT DATE(creation_time) AS creation_time
    

    Or the PHP way:

    $creation_date = date('Y-m-d', strtotime($row['creation_time']));
    

    Edit Here's the exact code for each way:

    Mysql:

    $sql2 = "SELECT id,
        full_name,
         owner_name awardee,
         owner awardee_email,
        (select concat(user_name,' ',user_last_name) from users where email = who_created) awarder,
         DATE(creation_time) AS creation_time
         FROM awards, award_types
         where who_created = ? and awards_type=type_id";
    

    And PHP version:

    foreach ($q2 as $row) {
         echo '<tr>';
         echo '<td>'. $row['id'] . '</td>';
         echo '<td>'. $row['full_name'] . '</td>';
         echo '<td>'. $row['awardee'] . '</td>';
         echo '<td>'. $row['awardee_email'] . '</td>';
         echo '<td>'. $row['awarder'] . '</td>';
         $creation_time = date('Y-m-d', strtotime($row['creation_time']));
         echo '<td>'. $creation_time . '</td>';
         echo '<td><a class="btn" href="DeleteAward.php?id='.$row['id'].'">Delete Award</a></td>';
         echo '</tr>';
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?