我正在建立一个测验系统,
桌子上的字段是:
ID,标题,说明,状态,已创建,已结束
逻辑就是这样:
测验最后只有一周,它将自动在一周的最后一天结束(我想在星期六24:00),管理员应该在一周的任何一天输入测验,如果输入的话在星期三下午01:00说,然后系统应该计算剩余的时间范围(在这种情况下它将是大约83小时),然后将其添加到当前时间()以插入到“已结束”字段。
我正走在正确的轨道上吗?如果我是,我应该如何计算PHP中的剩余时间框架?感谢
答案 0 :(得分:2)
您可以使用strtotime();
获取时间戳并使用“下周六”参数,这样您就可以通过执行以下操作来计算剩余时间:
$timeRemaining = strtotime('next saturday') - time();
这会给你一个以秒为单位的时间戳,你可以除以3600来获得时间。
答案 1 :(得分:2)
在PHP> = 5.3.0上,您可以使用函数date_diff
在以前的版本中,你可以使用类似的东西
$date1 = time();
$date2 = mktime(0,0,0,01,28,2011);
$diff = $date2 - $date1;
答案 2 :(得分:0)
您可以使用mktime
或strtotime
功能找到结束时间,并使用
// Saturday, this week
$ends = strtotime('next saturday');
$remaining = $ends - time(); // Remaining time in seconds
答案 3 :(得分:0)
如果我已正确理解了这个问题,即您希望将结束日期存储在数据库中,那么这不仅可以通过
实现吗?$ ends = strtotime(“+ 1周”);
答案 4 :(得分:0)
请注意,周六24:00不存在。时间从星期六的23:59:59到星期日的00:00:00。
无需手动添加时间。创建测验后,您可以使用$end_time = strtotime( 'next Sunday' );
来获得测验结束的时间(周日早上00:00:00)。