Как сравнить текущее время со временем, указанным в таблице в PHP, чтобы определить активное / истекшее / предстоящее? - PullRequest
0 голосов
/ 21 февраля 2019
[https://i.stack.imgur.com/ZkPTT.png][1]        
<?php
    $email=$_SESSION['user'];
    $con = new mysqli('localhost', 'root', '', 'sconnect');
    $data="SELECT * FROM events WHERE email='$email';";
    $resmy=mysqli_query($con,$data);
    if ($data) {
        while($row = mysqli_fetch_array($resmy)) { 
            $gid = $row['event_id'];
            $gquery ="select * from events where event_id='$gid';";
            $myresq = mysqli_query($con,$gquery);
            $grow = mysqli_fetch_array($myresq);
            echo "<tr><td>".$row['event_id']."</td><td>".$grow['gname']."</td> 
            <td>".$grow['location']."</td><td>".$grow['date']."</td> 
            <td>".$grow['timing_from']."</td><td>".$grow['timing_to']."</td> 
            <td>".$grow['venue_details']."</td><td>".$grow['participants']."</td>
            </tr>";
       }
    } else {
       echo"<tr><td>You have not created any events yet</td></tr>";
    }
?>

В этом коде я хочу добавить столбец для отображения события активно / истекло / предстоящее.В приведенной выше таблице указаны время начала и время окончания события.

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете создать переменную внутри вашего PHP-кода, чтобы получить статус, основанный на поле даты вашей таблицы.Проверьте ниже код:

<?php
    $email=$_SESSION['user'];
    $con = new mysqli('localhost', 'root', '', 'sconnect');
    $data="SELECT * FROM events WHERE email='$email';";
    $resmy=mysqli_query($con,$data);
    if ($data) {
        while($row = mysqli_fetch_array($resmy)) { 
            $gid = $row['event_id'];
            $gquery ="select * from events where event_id='$gid';";
            $myresq = mysqli_query($con,$gquery);
            $grow = mysqli_fetch_array($myresq);
            if (strtotime(date('Y-m-d H:i:s')) > strtotime($grow['date_to'])) { // means current time is greater than event to time which makes it expired.
                $eventStatus = 'Expired';
            } else if (strtotime(date("Y-m-d H:i:s", strtotime('-24 hours'))) > strtotime($grow['date_from'])) { //means event will start with in next 24 hours.
                $eventStatus = 'Upcoming';
            } else if (strtotime(date('Y-m-d H:i:s')) > strtotime($grow['date_from']) && strtotime(date('Y-m-d H:i:s')) < strtotime($grow['date_to']) ) { //means current time is in between of date_from and date_to.
                $eventStatus = 'Ongoing';
            } else {
                $eventStatus = 'Active';
            }

            echo "<tr><td>".$row['event_id']."</td><td>".$grow['gname']."</td> 
            <td>".$grow['location']."</td><td>".$grow['date']."</td> 
            <td>".$grow['timing_from']."</td><td>".$grow['timing_to']."</td> 
            <td>".$grow['venue_details']."</td><td>".$grow['participants']."</td>
            <td>".$eventStatus."</td></tr>";
       }
    } else {
       echo"<tr><td>You have not created any events yet</td></tr>";
    }
?>

Надеюсь, это поможет вам.

...