首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >date_format要求参数%1为DateTimeInterface/致命错误:调用中布尔值的成员函数add()

date_format要求参数%1为DateTimeInterface/致命错误:调用中布尔值的成员函数add()
EN

Stack Overflow用户
提问于 2017-01-21 00:55:41
回答 1查看 2.4K关注 0票数 1
代码语言:javascript
代码运行次数:0
运行
复制
<?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‘) );

EN

回答 1

Stack Overflow用户

发布于 2017-01-21 01:02:31

如果提供给DateTime::createFromFormat的日期字符串与第一个参数中提供的格式不匹配,它将无法创建date对象并返回false。这是您的错误消息"Call to a member function add() on boolean“中提到的布尔值。

您需要更正日期格式或日期字符串,使它们匹配。调试它的最简单方法是调用var_dump($parseDate . " " . $row ['BeginTime']),看看字符串在哪些方面与预期的格式不匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41768726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档