php - 循环获取议程和白天时间并填充数据库中的数据

标签 php html mysql for-loop while-loop

我被卡住了,我猜这是一个循环问题,有人可以帮助我并告诉我我做错了什么吗?这就是我所拥有的:

$this->time = mktime(7,0,0,$this->date);

    for($i=1;$i<56;$i++) {
        echo '<tr><td>' . date('H:i', $this->time) . '</td>';
        while($this->results = $this->sql->fetch(PDO::FETCH_ASSOC)){

            if (date('H:i:s', $this->time) != $this->results['time']) {
                $this->agenda = '<td>' . $this->results['name'] . '</td></tr>';
            } else {
                $this->agenda = '<td>This Hour is free</td></tr>';
            }
            echo $this->agenda;
        }

        $this->time += 900;
    }

我想要做和得到的是: 使用 24 小时格式显示从早上 7 点到晚上 8:30 的时间范围,而且时间应该每 15 分钟分割一次,这就是为什么我在 900 上增加了 for 循环。 在与数据库匹配的时间上,显示该人的姓名,否则显示此时间是免费的。

但是我在表格和循环/ block 顺序方面遇到了问题 感谢并赞赏它

最佳答案

我希望这可能有用 - 它使用 DateTimeDateTimeZoneDateInterval 类,但不合并您的代码来检查数据库结果 - 这应该相当简单。

<?php
    define('BR','<br />');
    $df='H:i';
    $timezone=new DateTimeZone('Europe/London');
    $interval=new DateInterval('PT15M');

    $ts=date( 'Y-m-d H:i:s', strtotime('6.45am') );
    $tf=date( 'Y-m-d H:i:s', strtotime('8.30pm') );

    $start=new DateTime( $ts, $timezone );
    $end=new DateTime( $tf, $timezone );

    while( $start->add( $interval ) <= $end ){
        echo $start->format( $df ) . BR;
    }

    $timezone=$interval=$ts=$tf=$start=$end=null;

?>

关于php - 循环获取议程和白天时间并填充数据库中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34405293/

相关文章:

php - 如何捕获完整的 url,包括#

php - 使用 Cron 作业的正确方法

MySQL。使用子查询创建 View 。多个表

php - 变量变量中的美元符号是否被视为取消引用运算符?

c# - 使用PHP显示用于C#程序的SQL表

android - 从 HTML(iOS 和 Android)打开短信和地址簿

html - 固定标题未固定到页面顶部

html - 无法在第一个和最后一个 child 上进行异常形状的悬停

php - 如何使用php mysql计算点击按钮的文件下载

php - 如何使用php从mysql日期时间中删除重复的日期