php计算剩余的时间范围

时间:2011-01-12 09:10:16

标签: php datetime

我正在建立一个测验系统,

桌子上的字段是:

ID,标题,说明,状态,已创建,已结束

逻辑就是这样:

测验最后只有一周,它将自动在一周的最后一天结束(我想在星期六24:00),管理员应该在一周的任何一天输入测验,如果输入的话在星期三下午01:00说,然后系统应该计算剩余的时间范围(在这种情况下它将是大约83小时),然后将其添加到当前时间()以插入到“已结束”字段。

我正走在正确的轨道上吗?如果我是,我应该如何计算PHP中的剩余时间框架?

感谢

5 个答案:

答案 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)

您可以使用mktimestrtotime功能找到结束时间,并使用

查找剩余时间
// 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)。