Вызов функции-члена getTimestamp () при ошибке не объекта - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь выполнить вычисление, которое проверяет, находится ли дата между двумя другими датами, используя оператор if с датами в правильном формате, но я все еще получаю ошибку отметки времени.Любая помощь в том, как я могу это исправить, будет принята с благодарностью.

$Query = mysqli_query($con, "SELECT * FROM tblrental WHERE `CARID` = '".$Car."'");
$row3 = mysqli_fetch_assoc($Query);
$ARTakeOut = $row3\['TakeOutDate'\];
$ARReturn = $row3\['ReturnDate'\];
$ARDaysRented = $row3\['DaysRented'\];
$ARDaysRented = (round($ARDaysRented/2));
$MidDate = date('Y-m-d', strtotime($ARTakeOut . ' + '.$ARDaysRented.' days'));

echo $MidDate; ?> <br> <?PHP
echo $ARTakeOut; ?> <br> <?PHP
echo $ARReturn; ?> <br> <?PHP




if (
  $MidDate->getTimestamp() > $ARTakeOut->getTimestamp() && 
  $MidDate->getTimestamp() < $ARReturn->getTimestamp()){
  echo "is between";
}else{
   echo "NO GO!";  
}

enter image description here

1 Ответ

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

$MidDate, $ARTakeOut и $ARReturn - все строки ($MidDate - это вывод date, а остальные - из чтения базы данных), а не DateTime объекты.Вместо этого вам нужно превратить их в DateTime объектов, если вы хотите использовать getTimeStamp:

$ARTakeOut = new DateTime($row3['TakeOutDate']);
$ARReturn = new DateTime($row3['ReturnDate']);
$ARDaysRented = $row3['DaysRented'];
$ARDaysRented = (round($ARDaysRented/2));
$MidDate = clone $ARTakeOut;
$MidDate->modify("+ $ARDaysRented days");

echo $MidDate->format('Y-m-d'); ?> <br> <?PHP
echo $ARTakeOut->format('Y-m-d'); ?> <br> <?PHP
echo $ARReturn->format('Y-m-d'); ?> <br> <?PHP

Демонстрация на 3v4l.org

Примечание Я удалиллишние \ перед вашими [ и ] с

...