DateTime::__construct() expects parameter 1 to be string
Hello,
J'ai un petit soucis que j'ai réglé mais ne suis pas satisfait car pour moi c'est plus du bricolage que de la pure compréhension.
J'avais ce code qui me mettais ce message d'erreur:"DateTime::__construct() expects parameter 1 to be string"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
if ($valetOccupationtimedepartured >= $systemOptionsValetCount) {
$date_departurelmore = new DateTime($datetime_departure);
while ( $valetOccupationtimedepartured >= $systemOptionsValetCount) {
$numMinutes = 15;
$date_departurelmore->modify ("+{$numMinutes} minutes");
$valetOccupationtimearrival = self::countplaceviphourdays($date_departurelmore);
}
public function countplaceviphourdays($datetime_valet)
{
$numMinutes = 59;
$date_more = new DateTime($datetime_valet);
$date_less = clone $date_more;
$date_more->modify ("+{$numMinutes} minutes");
$date_less->modify ("-{$numMinutes} minutes");
$vipOccupationtime = DB::table('reservations')
->where(function($query) use ($date_less,$date_more){
$query->whereBetween('date_of_departure', [$date_less, $date_more])
->orWhereBetween('date_of_arrival', [$date_less, $date_more]);
})
->where('reservation_type', '=', 'valet')
->where('payment_status', '=', 'completed')
->where('is_returned', '!=', '1')
->count();
return $vipOccupationtime;
} |
C'étais la variable $date_departurelmore qui fesait cette erreur car quand j'arrivais à la function cette ligne là:
Code:
$date_more = new DateTime($datetime_valet);
me fessait une erreur
donc du coups pour mettre cette variable en string j'ai du ajouter ça:
Code:
1 2 3 4
|
$day_arrivalmore = $date_arrivalmore->format('Y-m-d');
$minute_arrivalmore = $date_arrivalmore->format('H:i');
$datetime_arrivalmore=$day_arrivalmore." ". $minute_arrivalmore; |
ce qui donne ce code au final:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
$date_arrivalmore = new DateTime($datetime_arrival);
while ( $valetOccupationtimearrival >= $systemOptionsValetCount) {
$numMinutes = 15;
$date_arrivalmore->modify ("-{$numMinutes} minutes");
$day_arrivalmore = $date_arrivalmore->format('Y-m-d');
$minute_arrivalmore = $date_arrivalmore->format('H:i');
$datetime_arrivalmore=$day_arrivalmore." ". $minute_arrivalmore;
$valetOccupationtimearrival = self::countplaceviphourdays($datetime_arrivalmore);
$date_arrivalmore = new DateTime($datetime_arrivalmore);
}
public function countplaceviphourdays($datetime_valet)... |
Et là ça marche mon problème c'est que j'arrive pas à trouver la solution toute bête pour éviter d'ajouter ce bricolage
Code:
1 2 3 4
|
$day_arrivalmore = $date_arrivalmore->format('Y-m-d');
$minute_arrivalmore = $date_arrivalmore->format('H:i');
$datetime_arrivalmore=$day_arrivalmore." ". $minute_arrivalmore; |
Merci d'avance pour toute aide et surtout savoir si il y a une solution