2014-12-11 2 views
0

특정 변수의 날짜가 오늘 날짜보다 큰 경우 오류 메시지를 표시하려고합니다. 그것을 위해 나는 다음 코드를 쓴하지만 오류를 gigiving 것 : "잡아낼 치명적인 오류 : 클래스 날짜 시간의 개체 라인 9 /var/www/web/print.php에서 문자열로 변환 할 수 없습니다"이 오류를 해결하는 방법 "Catchable fatal error : DateTime 클래스의 개체를 9 행의 /var/www/web/print.php에있는 문자열로 변환 할 수 없습니다"?

<?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"; 
?> 

두 날짜를 적절하게 비교하여 모든 기능을 수행하려면 위 코드를 수정해야합니까?

+0

의 중복 가능성 [오늘 날짜로 날짜를 비교하기 위해 작성된 코드의 문제가 무엇입니까?] (http://stackoverflow.com/questions/27394548/whats-the-issue-in-a-code -written-for-comparison-the-todays-date) –

답변

2

당신은 당신의 의도가 원하는 날짜를 얻을 수있는 경우가 만들어 DateTime 개체에 ->format()를 사용해야합니다.

echo "Trans Date " . $newTransDate->format('Y-m-d'); // and remove that die! 
+0

도움 주셔서 감사합니다. 그러나 두 날짜를 비교하기 위해 작성한 코드가 정확한지 여부를 알려주십시오. – PHPLover

+0

@PHPLover 예, if의 두 datetime 객체를 비교하는 방법에는 아무런 문제가 없습니다. – Ghost

0

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

$newTransDate, 때문에하는 것은 목적과는 echo, 문자열을 인쇄 전용 기능을 인쇄.

당신은 그것을 인쇄 할 수 있습니다

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

echo

print_r()

+0

귀하의 도움에 감사드립니다. 하지만 날짜를 비교하고 메시지를 적절하게 작성하는 코드는 무엇입니까? – PHPLover