holla guys
我正在创建一个php网络应用程序,它允许管理员勾选已经上课的人。
我有关于数据库的以下数据
学期开学日期,学期结束日期,课日和时间
例如,
5 March 2012
,9th April 2012
Monday{9,12},Thursday{14,17}
我可以获得总周数的开始和结束日期。现在的问题在于我如何得到类假设的日期,就像星期一一样,它假设是9日,但是在星期四?动态。
是否有任何php类或任何方法?
非常感谢
答案 0 :(得分:3)
不要自己实现日期功能,处理日期时会有很多陷阱。您可以使用strtotime来使用以下字符串迭代日期:strtotime("next Thursday", yourdate)
答案 1 :(得分:1)
不确定此时是否容易更改数据格式,但我建议构建数据库的方式(这将极大地简化查询您询问的信息类型)将是这样的:
CREATE TABLE `student_attendance` (
`student` INT(11) NOT NULL,
`class` DATETIME NOT NULL,
`attended` BOOLEAN NOT NULL,
PRIMARY KEY (`student`,`class`)
)
然后,要查询学生参加的天数,您可以这样做:
SELECT COUNT(*)
FROM `student_attendance`
WHERE `student` = '1'
AND `attended` = TRUE;
当然,如果不知道你究竟想要完成什么,我不能确定这是完全合适的。虽然您用来存储数据的格式似乎会让您的生活变得不必要(您将不同的数据点合并到一个列中;这是禁忌),所以我认为这是一种改进。
编辑:更准确地说,保存日期和期间(而不是日期和时间); e.g:
CREATE TABLE `student_attendance` (
`student` INT(11) NOT NULL,
`class_date` DATE NOT NULL,
`class_period` TINYINT(4) NOT NULL,
`attended` BOOLEAN NOT NULL,
PRIMARY KEY (`student`,`class_date`,`class_period`)
)