PHP date_diff返回异常警告

sri*_*sri 0 php datetime date-math

关于date_diffPHP函数有很多问题.但我觉得有点不同,因为我得到了一个相当不寻常的结果.以下是我的代码:

$today = date( 'd-m-Y', strtotime( "now" ) );
$selectDay = date( 'd-m-Y', strtotime( $row->BOOKING_DATE ));
$interval = date_diff( $selectDay, $today );
Run Code Online (Sandbox Code Playgroud)

结果我得到了:

Warning: date_diff() expects parameter 1 to be DateTime, string given in...
Run Code Online (Sandbox Code Playgroud)

如你所见$ $和$ selectDay都是日期.有什么建议?注意:我有PHP版本5.3

Joh*_*nde 5

错误消息很明确.date_diff()期待DateTime()对象,但你传递的是字符串.

$today     = new DateTime();
$selectDay = new DateTime($row->BOOKING_DATE);
$interval  = date_diff( $selectDay, $today );
Run Code Online (Sandbox Code Playgroud)

要么:

$today     = new date_create();
$selectDay = new date_create($row->BOOKING_DATE);
$interval  = date_diff( $selectDay, $today );
Run Code Online (Sandbox Code Playgroud)

要么:

$today     = new DateTime();
$selectDay = new DateTime($row->BOOKING_DATE);
$interval  = $today->diff( $selectDay );
Run Code Online (Sandbox Code Playgroud)

  • 尝试使用`var_dump()`而不是`echo`.它是一个对象而不是字符串.但是如果你想要它格式化你需要使用[`DateInterval :: format()`](http://php.net/manual/en/dateinterval.format.php) (2认同)