date_format ожидает, что параметр 1 будет DateTimeInterface / Fatal error: вызов функции-члена add () для логического значения в

<?php
include "dbConnect.php";
function getTimeTable($tutorID, $parseDate) {
//'$parseDate'
global $con;
$today = date ( "Y-m-d" );
$time_table_res = mysqli_query ( $con, "SELECT BeginTime, EndTime FROM TimeTable WHERE TutorId = '$tutorID'" );
$timetable = array ();
$num_rows = mysqli_num_rows ( $time_table_res );

if ($num_rows > 0) {
while ( $row = mysqli_fetch_array ( $time_table_res, MYSQLI_ASSOC ) ) {
$begin_time = DateTime::createFromFormat ( 'Y-m-d g:i a', $parseDate . " " . $row ['BeginTime'] );
$end_time = DateTime::createFromFormat ( 'Y-m-d g:i a', $parseDate . " " . $row ['EndTime'] );

while ( $begin_time <= $end_time ) {

$fdate = date_format($begin_time, 'g:i a');
array_push ( $timetable, $fdate );
$begin_time->add ( new DateInterval ( 'PT30M' ) );
}
}
}
return $timetable;
}
?>

Привет,

Я очень новичок в php и буду признателен за любую доступную информацию. Я пытаюсь создать систему планирования, но я действительно боролся с форматами времени и не давал их выводить в военное время.

В частности, эти две строки дают ошибки

$ fdate = date_format ($ begin_time, ‘g: i a’);

$ begin_time-> add (new DateInterval (‘PT30M’));

1

Решение

Если строка даты предоставлена DateTime::createFromFormat не соответствует формату, указанному в первом параметре, он не сможет создать объект даты и вернет false, Это логическое значение, упомянутое в вашем сообщении об ошибке «Вызов функции-члена add () on boolean».

Вам необходимо исправить формат даты или строку даты, чтобы они совпадали. Самый простой способ отладки это вызвать var_dump($parseDate . " " . $row ['BeginTime']) и посмотрите, каким образом строка не соответствует ожидаемому формату.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector