Aisha Ashwal
Aisha Ashwal

Reputation: 83

How to only display date, not time, in a table using 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!

Upvotes: 0

Views: 981

Answers (1)

aynber
aynber

Reputation: 23011

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>';
}

Upvotes: 3

Related Questions