<?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’));
Если строка даты предоставлена DateTime::createFromFormat
не соответствует формату, указанному в первом параметре, он не сможет создать объект даты и вернет false
, Это логическое значение, упомянутое в вашем сообщении об ошибке «Вызов функции-члена add () on boolean».
Вам необходимо исправить формат даты или строку даты, чтобы они совпадали. Самый простой способ отладки это вызвать var_dump($parseDate . " " . $row ['BeginTime'])
и посмотрите, каким образом строка не соответствует ожидаемому формату.
Других решений пока нет …