Я хочу показать сообщение об ошибке, если дата в определенной переменной больше, чем сегодняшняя дата. Для этого я написал следующий код, но он показывает ошибку:
«Исправляемая фатальная ошибка: объект класса 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>';