简体   繁体   中英

How to insert result of date difference into mysql database using php?

    <?php
    function find_days($start_date, $end_date) {
    $response = new stdClass();
    try {
    $sdate = new DateTime($start_date);
    $edate = new DateTime($end_date);
    $dateInterval = $edate->diff($sdate);
    $response->status = true;
    $response->result = $dateInterval;
    return $response;
    } catch (Exception $e) {
    $response->status = false;
    $response->result = 'Invalid Date Format';
    return $response;
    }
    } 
    ?>            
    Start Date: <input type="date" name="sdate" placeholder="start date" /> 
    End Date: <input type="date" name="edate" placeholder="end date" /> 
    <input type="submit" value="Find Days" />
    <?php
           if (isset($_POST['sdate']) && $_POST['sdate']) {
            $start_date = $_POST['sdate'];
            $end_date = $_POST['edate'];
            //now call the function
            $days_array = find_days($start_date, $end_date);
            if ($days_array->status) {
            echo " <input  type='text' name='day' 
            value='.$days_array>result>days.' />";
            $day = $_POST['day'];                   
            $query   = "INSERT into cart (date,edate,days) 
            VALUES('$start_date','$end_date','$day')";
            $success = $conn->query($query);
            if (!$success) {
            die("Couldn't enter data: ".$conn->error);  
            }
            } else {
                echo $days_array->result;
            }
        }

My code is working perfectly. But the result is displayed only on the screen. So I've tried to store the result by placing it in a textbox and then insert into the table in a usual way. But I got an error "Catchable fatal error: Object of class DateInterval could not be converted to string in C:\\xampp\\htdocs\\date.php on line 45" I don't know how to rectify this.. please help me solve this.

You have to convert it to a string using format :

<?php
$now = new DateTime();
$hour = new DateTime( "now +1hours +13minutes +22seconds" );
$diff = $now->diff( $hour );

echo $now->format('Y-m-d H:i:s');
echo "\n";
echo $hour->format('Y-m-d H:i:s');
echo "\n";
echo $diff->format('%H:%I:%S');

Output

2018-07-26 20:53:42
2018-07-26 22:07:04
01:13:22

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM