将约会添加到周视图php生成的日历

时间:2013-12-12 22:29:49

标签: php mysql calendar

我创建了一个纯PHP启用的日历,同时包含每月和每周视图 但现在我不得不在周视图中添加appontments。每个约会都存储在MySQL数据库中,其中 start stop timestamp (Y-m-d H:i)

我上传了 light 版本供您查看:http://thomaskile.me/?side=calendar

工作日和每天的时间间隔编码如下:

<!--weekdays-->
<?php for($week_day=(0+$day_offset); $week_day<=(6+$day_offset); $week_day++): ?>
    <td>
        <table><tbody>
        <!--time intervals-->
        <?php for($day_time=strtotime($day_time_open_str); $day_time<(strtotime($day_time_close_str)+($day_time_interval_str*60)); $day_time+=(3600/(60/$day_time_interval_str))): ?>
            <tr><td>  </td></tr>
        <?php endfor; ?>
        <!--//-->
        </tbody></table>
    </td>
<?php endfor; ?>
<!--//-->

几个笔记:

  • $day_offset定义了一周的开始。 0 =星期日,1 =星期一。
  • $day_time_open_str$day_time_close_str是开始和结束时间 - 例如“09:00”和“17:00”。它用于计算一天内的小时数。
  • $day_time_interval_str实际上是一个整数 - 例如15 - 代表每分钟的间隔。这用于计算一天内的总间隔数。

我得到了我想要的观点,但我无法弄清楚如何使用存储在数据库中的约会来填充一周 - 每一天。

首先,我尝试将我的db-query放在“工作日 - for - 循环”中,并在时间间隔之前。

$sql = 'SELECT * FROM appointments WHERE start LIKE "Y-m-d%"';

然后;在“时间间隔 - for - 循环”中,我将间隔时间戳与 start stop 时间戳与从数据库中提取的appontments进行了比较 - 如下所示:< / p>

<?php if(($weekday_date.' '.date('H:i',$day_time)>=$get_appointments['start'])&&($weekday_date.' '.date('H:i',$day_time)<=$get_appointments['stop'])): ?>
    <span><?=$get_appointments['customer']?></span>
<?php endif; ?>

这几乎奏效了 这是我的问题:

  • 每次约会缺席1 - 一次 - 开始时间间隔 例如。从10点开始的收集从10点15分开始输出,12点15分从12点30分开始等等..但是他们都在正确的时间停止了..

  • 我每天只能获得1 - 1 - appontment。我认为这是因为我没有循环每一天的结果或类似的东西。我无法弄清楚如何或在何处这样做。
    我的查询同样告诉我,任何给定日期的所有约会都是在phpMyAdmin中提取的。

这是我得到的。如果有人能帮助我,那就太棒了......

其他信息:

我看到了;我正在为一天中的每个间隔做一个for循环 - 在我的情况下每15分钟。对于每个时间间隔,我需要检查数据库以查看此特定时间间隔是否介于约会的 start stop 时间戳之间?

更新:
以为我得到了它的工作。
通过使用PDO::fetchAll我能够循环通过所有结果 - 约会 - 每个间隔检查此间隔是否介于 start stop 之间约会的时间戳。每天的多次约会就像魅力一样 但是为了使时间范围正常工作,我必须在 start -time上包含秒,并在 stop -time中将其排除。如果没有,我在开始或结束时都失去了间隔..但它似乎正在起作用。感谢Tin Tran的帮助。

现在我需要弄清楚如何为不同的处理程序同时进行多次约会..

0 个答案:

没有答案