Я хочу показать сообщение об ошибке, если дата в определенной переменной больше, чем сегодняшняя дата. Для этого я написал следующий код, но он выдал ошибку: "Обманиваемая фатальная ошибка: объект класса DateTime не может быть преобразован в строку в /var/www/web/print.php в строке 9"
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$form_data['trans_date'] = '12-11-2014';
$newTransDate = DateTime::createFromFormat('!m-d-Y', $form_data['trans_date']);
$today_date = new DateTime();
echo "Trans Date " . $newTransDate; die; //This is line no.9
if($newTransDate > $today_date)
echo "Error";
else
echo "Success";
?>
Какие изменения необходимо внести в вышеуказанный код для того, чтобы функционировать все с правильным сопоставлением двух дат?
Вам нужно использовать ->format()
для созданного объекта DateTime, если вы хотите получить нужную дату.
echo "Trans Date " . $newTransDate->format('Y-m-d'); // and remove that die!
Потому как,
echo "Trans Date " . $newTransDate; die; //This is line no.9
$newTransDate
- это объект и его печать с помощью echo
, функция, предназначенная для печати строки.
Вы можете распечатать его с помощью:
echo '<pre>';
print_r($newTransDate);
echo '</pre>';