我创建了一个纯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的帮助。
现在我需要弄清楚如何为不同的处理程序同时进行多次约会..