在date_diff
PHP函数上提出了许多问题。但我觉得有点不同,因为我得到了一个相当不寻常的结果。以下是我的代码:
$today = date( 'd-m-Y', strtotime( "now" ) );
$selectDay = date( 'd-m-Y', strtotime( $row->BOOKING_DATE ));
$interval = date_diff( $selectDay, $today );
结果我得到了:
Warning: date_diff() expects parameter 1 to be DateTime, string given in...
如你所见$ $和$ selectDay都是日期。有什么建议? 注意:我有PHP版本5.3
答案 0 :(得分:5)
错误消息很明确。 date_diff()
期望DateTime()
个对象,但您传递的是字符串。
$today = new DateTime();
$selectDay = new DateTime($row->BOOKING_DATE);
$interval = date_diff( $selectDay, $today );
或者:
$today = new date_create();
$selectDay = new date_create($row->BOOKING_DATE);
$interval = date_diff( $selectDay, $today );
或者:
$today = new DateTime();
$selectDay = new DateTime($row->BOOKING_DATE);
$interval = $today->diff( $selectDay );
答案 1 :(得分:3)
date
以字符串的形式返回UNIX时间戳的文本表示。
date_diff
需要一个DateTime
对象,如下所示:
http://php.net/manual/en/class.datetime.php
顺便提及,
date( 'd-m-Y', strtotime( "now" ) )
相当于date('d-m-Y')
。
答案 2 :(得分:0)
在传递date_create()
函数参数
date_diff()
函数
$today = date( 'd-m-Y', strtotime( "now" ) );
$selectDay = date( 'd-m-Y', strtotime( $row->BOOKING_DATE ));
$interval = date_diff( date_create($selectDay), date_create($today) );