I am trying to determine how many days overdue a dvd is. My code is:
$query = "SELECT rental_date FROM rented_dvds WHERE dvd_id = '$dvd_id' ";
$result = mysqli_query($dbc, $query);
$newDate = DateTime::createFromFormat("l dS F Y", $result);
$startTimeStamp = strtotime("$newDate");
$endTimeStamp = strtotime("NOW");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;
$numberDays = intval($numberDays);
rented_dvds is captured when the DVD is rented using NOW(). When I run that code I get: "Warning: DateTime::createFromFormat() expects parameter 2 to be string, object given in .../.../return_dvd.php on line 34"
Line 34 is the line that starts with the $newDate variable.
This is all code that I've cobbled together from different sources, but I thought I had cobbled properly. I've been searching for an answer, and have tried a few different solutions, but I can't seem to make any of them work.
Also, this is my first post, so 'hi!' and thanks for any help!
Are you fetching in the right way ?because you are directly fetch $result which is give you in an pbject or array form ..you have to write
$row=mysqli_fetch_array($result);
$newDate = DateTime::createFromFormat("l dS F Y", $row['rental_date']);
That's simply because $result is in fact an object that can contain multiple rows. You have to walk trough it to retain the particular row you need :
<?php
$query = "SELECT rental_date FROM rented_dvds WHERE dvd_id = '$dvd_id' ";
$result = mysqli_query($dbc, $query);
$row = $result->fetch_assoc();
$newDate = DateTime::createFromFormat("l dS F Y", $row['rental_date']);
$startTimeStamp = strtotime("$newDate");
$endTimeStamp = strtotime("NOW");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;
$numberDays = intval($numberDays);
?>