2013-11-03 29 views
0

所以我有一个数据库,有一组事件,假设发生并在特定时间结束。所以说,我的表是(这里的事件是一个真实的事件,而不是一个代码的东西)设置事件发生在一定时间之间

Event | TimeStart | TimeEnd | Day 
A  |  0800 | 1400  | 2 
B  |  2000 | 2300  | 3 
C  |  1200 | 1900  | 4 

我要的是,我想事件发生IF的TimeEnd和TimeEnd + 3小时的。我遇到的问题是如果它的2300?我用与日期(N)对应的日期(1) - 周日(7)

所以如果它的事件B,我需要一个代码,采取当前时间,减少它3小时我不会去第4天),然后我得到TimeEnd并添加3小时。

现在我测试的问题是,如何让事件B在第3天?即使我使用了strtotime(),但事件B在2400小时后仍然显示第4天。

为了更清楚地说明问题,我创建了一个投票投票,只有在事件结束后才开始投票,并且只持续3个小时。

编辑找到了答案,不知道使用“本周星期一”有意义的日期():d

回答

0

你的时候表示该表是有点怪异。如果每个事件只发生一次(不重复例如每个星期一),我建议您使用unix timestamp来表示时间。那么你将没有这样的问题。

+0

它每个星期一都会重复,这就是问题所在。 – Crays

+0

那么为了帮助你,我们应该确切地知道你在做什么。你是否在做出选择并决定是否应该为某个事件显示投票?如果是这样,获得当前/前一天的开始时间戳,将结束时间加上+ 30分钟,然后将结果与当前日期进行比较应该不成问题。但我只是猜测。也许你可以提供一些你有的代码。 – Jardo

相关问题