2011-01-12 51 views
1

我建立一个测验系统,PHP来计算的剩余时间框架

上表中的字段是:

ID,标题,描述,状态,创建,结束

的逻辑就是这样的:

一个测验仅持续一周,它会在一周的最后一天自动结束(我在星期六24:00考虑),并且管理员应该在任何一天的测验中输入测验周,如果它是在Wedne上输入的星期天在下午1点说,那么系统应该计算剩余的时间范围(在这种情况下大约需要83小时),然后将其添加到当前时间()以插入到“结束”字段。

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

感谢

回答

2

可以使用strtotime();得到时间戳和使用参数的下个周六,所以你可以计算出时间做这样的事情剩余:

$timeRemaining = strtotime('next saturday') - time(); 

这会给你以秒为单位的时间戳,您可以用3600除以得到小时数。

+0

这一个作品,谢谢你。顺便说一句,得到的时候,我应该除以3600不应该? – littlechad 2011-01-12 09:27:34

0

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

// Saturday, this week 
$ends = strtotime('next saturday'); 
$remaining = $ends - time(); // Remaining time in seconds 
2

在PHP> = 5.3.0您可以使用该功能date_diff

在以前的剩余版本你可以使用这样的事情

$date1 = time(); 
$date2 = mktime(0,0,0,01,28,2011); 

$diff = $date2 - $date1; 
0

如果我正确地理解了这个问题,即你想结束日期存储在数据库然后,这不仅可以实现与

$结束= strtotime(“+ 1周”);

0

请注意,星期六的24:00不存在。时间从星期六的23点59分59秒到星期日的00点00分。

无需手动添加时间。测验创建后,您可以使用$end_time = strtotime('next Sunday');获得测验结束的时间(周日上午00:00:00)。