0

date_diffPHP の機能について多くの質問がありました。しかし、かなり変わった結果が得られるので、私のものは少し違うようです。以下は私が持っているコードです:

$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...

ご覧のとおり、$today と $selectDay はどちらも日付です。助言がありますか?注: PHP バージョン 5.3 を使用しています。

4

3 に答える 3

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 );
于 2014-08-07T12:53:37.837 に答える
3

date文字列形式の UNIX タイムスタンプのテキスト表現を返します。

date_diffDateTimeここに文書化されているように、オブジェクトを期待しています:

http://php.net/manual/en/class.datetime.php

ちなみに、

date( 'd-m-Y', strtotime( "now" ) )

と同等date('d-m-Y')です。

于 2014-08-07T12:54:07.963 に答える
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) );
于 2014-08-07T12:53:57.070 に答える