好的,我的网站上有一个聊天功能,我在其他问题中提到过。我学校里有些孩子喜欢在学校聊天,不过我更希望他们只在自习室聊天,这样我就不会因为打扰上课而惹上麻烦。我如何在一天中的特定时间段限制用户在我网站上的活动?谢谢!我不知道我可能需要什么类型的脚本语言,但我假设PHP,因为这是一个服务器问题。
<?php date("H"); ?>
以带前导零的24小时格式返回当前小时。
也就是说,你可以这样写:
<?php
if (date("H") == 14)){
die("You cannot get here right now");
}
?>
这将"死"回显页面,并将在一天的第14个小时(下午2:00)返回错误。
给我们更多的代码/细节,以获得更深入的答案。
编辑:这是对新问题的扩展答案,问,
我学校的自习室是2:30到3:15,我该怎么做呢?
解决方案:假设自习室是学生允许使用网站(部分)的时间,您可以这样做:
<?php
$bottomValue = 60*14+30;
$upperValue = 60*15+15;
$currentValue = date("G")*60+date("i");
if (($currentValue >= $bottomValue) && ($currentValue <= $upperValue)){
// everything is OK = put some code here, or ignore this
}
else{
// well, this is the time they are not allowed to see this, so, let's try:
die("Sorry, you are not allowed to be here right now.");
}
?>
解释一下这是如何工作的:你的时间基数被计算为$bottomValue
和$upperValue
的分钟数。注意它们是如何定义的,它是60分钟乘以小时(14)加上分钟(30)。
14:30为60*14+30
,则16:20为60*16+20
。
然后将基值与当前时间进行比较,并根据if/else语句执行相应的代码。
您还可以通过web服务器控制访问;例如,Apache在mod_rewrite
:
RewriteEngine On
RewriteCond %{TIME_HOUR} >20 [OR]
RewriteCond %{TIME_HOUR} <07
RewriteRule ^/chat - [F]
@RiMMER的基于php的解决方案可能更容易读、写和修改,但是基于服务器的机制不需要在每个页面中插入一个签。
要注意的是,在使用date()
功能时,还要考虑服务器的日期/时间设置,因为即使您在网站上设置了日期和时间检查,如果服务器的日期和时间与您指定的限制时间(在您的学校)不相同,他们可能仍然会查看内容。