我正在尝试做一个双时间表系统的事情。
基本上,这是针对学校项目的,有些学校有第 1 周和第 2 周的系统。
这种工作方式是每周交替进行,因此在 9 月初,学校周从第 1 周开始,下周是第 2 周。
我将如何在 PHP 和 MySQL 中实现这一点?
似乎没有明确的答案,而且之前也没有真正做过。
这是一个大工程。我已经为一个教育管理系统做到了,在这个系统中,知道在特定时间上什么课是普遍存在的。
我们让它工作的方式是让一个对象在真实的日期时间戳和由运行、学期/学期、周、日和期间组成的“学校时间”值之间进行转换。运行 ID 可以为不同的学年以及学校的不同部分构建不同的时期布局。每个学期还知道周周期是什么,例如 1 表示所有周都相同,2 表示周 1/2 排列,或者如果您想获得幻想,可以使用任何其他值。(目标代码也有一些花哨的缓存逻辑来节省不必要的转换。这也是教会我使用 PHP 日期库专门用于日期操作的原因:必须正确处理夏令时转换中期!)
就数据库而言,需要以学校时间而非真实日期时间为导向的项目(例如时间表条目)有五列用于学校时间对象的各种元素。他们没有记录真实的日期时间:只有上学时间。我们还在每个实际期间存储了一个条目。尽管这使系统性变更变得更加困难,但这意味着可以更轻松地适应个人变更。我们正在考虑尝试使用覆盖类型结构,但工作量很大。如果我要从头开始,我会试一试。