Как устранить эту ошибку. Уловимая фатальная ошибка: объект класса DateTime не может быть преобразован в строку в /var/www/web/print.php в строке 9?

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

Какие изменения необходимо внести в приведенный выше код, чтобы все работало с правильным сравнением двух дат?


person PHPLover    schedule 11.12.2014    source источник
comment
возможный дубликат Что проблема в коде, написанном для сравнения даты с сегодняшней датой?   -  person Glavić    schedule 11.12.2014


Ответы (2)


Вам нужно использовать ->format() для этого созданного объекта DateTime, если вы хотите получить нужную дату.

echo "Trans Date " . $newTransDate->format('Y-m-d'); // and remove that die!
person Kevin    schedule 11.12.2014
comment
Спасибо за вашу помощь. Но, пожалуйста, дайте мне знать, верен ли код, который я написал для сравнения двух дат? - person PHPLover; 11.12.2014
comment
@PHPLover да, нет проблем с тем, как вы сравниваете два объекта datetime в вашем if. - person Kevin; 11.12.2014

Потому что,

echo "Trans Date " . $newTransDate; die; //This is line no.9

$newTransDate - это объект, и вы печатаете его с помощью echo, функции, предназначенной для печати строки.

Вы можете распечатать его с помощью:

echo '<pre>';
print_r($newTransDate);
echo '</pre>';

эхо

print_r()

person Pupil    schedule 11.12.2014
comment
Хорошо Спасибо за вашу помощь. Но правильно ли написан мой код для сравнения дат и размещения сообщений? - person PHPLover; 11.12.2014