Запретить регистрацию между определенными часами

Я пытаюсь изобразить небольшую рутину для моего программного обеспечения на форуме (vBulletin 3.x, который поддерживает PHP-подпрограммы через систему хуков). У меня есть этот код из некоторых исследований, которые я проводил ранее, но условие не работает так, как я планировал — оно будет «истинным», только если время запуска установлено равным 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

Решение

Вместо сравнения строк, вы также можете использовать 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';
}
4

Другие решения

это работает:

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

По вопросам рекламы [email protected]