防止在特定时间之间注册

时间:2014-12-05 01:09:23

标签: php if-statement time vbulletin

我试图为我的论坛软件(通过钩子系统支持PHP例程的vBulletin 3.x)设计一个小例程。我从之前做过的一些研究中得到了这个代码,但条件并没有像我预期的那样起作用 - 它只会是“真实的”#39;如果开始时间设置为0000或更晚。

$regtime = gmdate('Hi');
$pnr_b1 = "2300";
$pnr_b2 = "0600";

if ($regtime > $pnr_b1 && $regtime < $pnr_b2) {
 // prevent registration code
}

有人可以帮忙吗?作为参考我运行PHP版本5.3.29,以防影响您的建议。

2 个答案:

答案 0 :(得分:4)

相反比较字符串,你也可以使用DateTime个对象,这样你就可以轻松地比较时间:

$regtime = new DateTime('23:15');
$from_time = new DateTime('23:00');
$to_time = new DateTime('23:30');

if($regtime >= $from_time && $regtime <= $to_time) {
    echo 'okay, process this';
} else {
    echo 'not allowed';
}

答案 1 :(得分:0)

这有效:

<?php
$regtime = gmdate('Gi');
$pnr_b1 = 2300;
$pnr_b2 = 600;
if ($regtime > $pnr_b1 or $regtime < $pnr_b2) {
    echo "fail";
}