2016-09-12 8 views
0

Я пытаюсь вывести количество дней между сегодняшним днем ​​и датой ввода, поэтому у меня есть проблема. Я встречаю ошибку: «Warning: date_diff() ожидает, что параметр 2 будет DateTimeInterface« Итак, в чем проблема ?PHP date_sub. не могу вычитать сегодня и дату

<?php 
 

 
$today=date("y-m-d"); 
 
$date=date_create("2016-09-16"); 
 

 
echo date_diff($date,$today); 
 

 
?>

+3

RTFM: http://php.net/date возвращает ** STRING **, не объект DateTime. –

+0

@MarcB, значит, мне нужно вставить $ today в функцию strtotime()? – nika

+1

rtfm: http://php.net/strtotime возвращает INTEGER, а не объект datetime. Вы действительно должны просто прочитать документацию. –

ответ

2

Ваша проблема заключается в том, что при использовании date_diff вы должны убедиться, что вы сравниваете объекты, которые являются реальными объектами даты. Также возвращаемым типом для date_diff является объект DateInterval. Вы рассматриваете его как строку.

$today = new DateTime(); // $today is a DateTime object 
$date = new DateTime("2016-09-16"); // $date is also a DateTime object! 
$diff = date_diff($date,$today); // compare two objects of the same type FTW! 

echo $diff->days; // $diff is a DateInterval object, so echo it's 'days' property. 

// output: 3 (as of this writing) 

Дальнейшее чтение:
http://php.net/manual/en/class.dateinterval.php
http://php.net/manual/en/class.datetime.php
http://php.net/manual/en/function.date-diff.php

+0

Большое спасибо. Правильно, что я хочу. – nika

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

  • Нет связанных вопросов^_^