2016-06-08 2 views
0

У меня проблема, я начинаю У меня есть дата рождения (в формате Y-m-d) И у меня есть фактическая дата.DateTime Catchable fatal error

$date = $_POST["DatumJJJJ"]."-".$_POST["DatumMM"]."-".$_POST["DatumTT"]; 
$birthday = new DateTime($date); 
$now = new DateTime(date("Y-m-d")); 
$difference = $birthday->diff($now); 
echo $difference; 

Теперь Theres ошибка в последней строке:

Catchable fatal error: Object of class DateInterval could not be converted to string 

Что я должен делать? Я видел другие подобные вопросы, но они мне не помогают!

+0

посмотреть структуру dateInterval obect http://php.net/manual/en/class.dateinterval.php – splash58

+0

это потому, что '$ difference' является объектом типа' $ difference-> format ('% R% a дней '); 'более подробно см. http://php.net/manual/en/datetime.diff.php –

ответ

0

Это потому, что $difference не является ниткой. Вы не можете печатать его напрямую, как вы печатаете строку. Если вы хотите увидеть данные, содержащиеся в $difference. Используйте print_r(). Подобно этому,

print_r($difference); 

Выход из функции выше будет чем-то вроде этого,

DateInterval Object 
(
    [y] => 0 
    [m] => 7 
    [d] => 29 
    [h] => 0 
    [i] => 0 
    [s] => 0 
    [weekday] => 0 
    [weekday_behavior] => 0 
    [first_last_day_of] => 0 
    [invert] => 0 
    [days] => 242 
    [special_type] => 0 
    [special_amount] => 0 
    [have_weekday_relative] => 0 
    [have_special_relative] => 0 
) 

См http://php.net/manual/en/class.dateinterval.php подробной информации каждого ключа в пределах объекта.

+0

Спасибо, но теперь у меня есть другая проблема – Korne127

+0

Я пробовал формат' $ difference-> (Y); 'и' $ difference-> (YMD); ' , но он не работает. Я хочу только годы, месяцы и дни – Korne127

+0

Вы можете сделать это так: '$ difference-> y',' $ difference-> m' и '$ difference-> d'. –

Смежные вопросы