-1
$hours = array();
$heures = Configuration::renvoyer_heures_debut_fin();
$arr_heures = explode('#',$heures->heures_debut_fin);
$start = new \DateTime($arr_heures[0].':00');
$end   = clone $start;
$end->setTime($arr_heures[1], 0);

$end の値が 17:45 の場合、毎回 17:00 を取得します

$start (真の値 = 13:30) と $end (真の値 = 17:45) の print_r :

DateTime オブジェクト ([日付] => 2013-08-12 13:30:00 [timezone_type] => 3 [タイムゾーン] => ヨーロッパ/ベルリン) DateTime オブジェクト ([日付] => 2013-08-12 17:00: 00 [timezone_type] => 3 [timezone] => ヨーロッパ/ベルリン)

2 番目の DateTime は 17:00 ではなく 17:45 にする必要があります

$arr_heures の print_r は:

配列 ( [0] => 13:30 [1] => 17:45 )

PHP ログには、次のエラーが表示されます。

/Applications/MAMP/htdocs/imaginatiff/reservations/PHP/class/Calendrier.class.php の 64 行目に、整形式でない数値が見つかりました

64行目は$end->setTime($arr_heures[1], 0);

アイデアはありますか?ありがとうございました。

4

1 に答える 1

0

使い方がsetTime間違っています -- 時間と分は別々のパラメータでなければなりません。

正しいのは次のとおりです。

list ($h, $m) = explode(':', $arr_heures[1]);
$end->setTime($h, $m); // you can omit seconds when zero

機能が期待どおりに機能しない場合は、マニュアルを読むことをお勧めします。

于 2013-08-12T18:37:39.983 に答える