Я пытаюсь изобразить небольшую рутину для моего программного обеспечения на форуме (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 на случай, если это повлияет на ваши предложения.
Вместо сравнения строк, вы также можете использовать 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';
}
это работает:
<?php
$regtime = gmdate('Gi');
$pnr_b1 = 2300;
$pnr_b2 = 600;
if ($regtime > $pnr_b1 or $regtime < $pnr_b2) {
echo "fail";
}