Я хотел бы показать сообщения в соответствии с диапазоном времени между двумя отметками времени

Моя цель показать сообщение, если временной диапазон находится между заданным диапазоном, если не отображать другое.
Я старался;

date_default_timezone_set("Europe/Istanbul");
$saat = date("h:i");
if ($saat <='08:00' && $saat >='22:00') {
echo ('yes we are open');
}
else ('sorry we are closed');{
}

Я знаю, что делаю ошибку, пытаясь понять, что если время находится между диапазонами, но я не могу преодолеть проблему.
жду ваших ответов.

0

Решение

Попробуйте следующее.

    $saat = new DateTime();
$open = new DateTime( $saat->format('Y-m-d').' 08:00',new DateTimeZone('Europe/Istanbul'));

$close = new DateTime($saat->format('Y-m-d').' 22:00',new DateTimeZone('Europe/Istanbul'));

if (($saat >= $open) && ($saat <= $close)) {
echo 'yes we are open';
}else{
echo 'sorry we are closed';
}
2

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

Попробуй это

date_default_timezone_set("Europe/Istanbul");
$saat = date("h:i");
if ($saat <='08:00' && $saat >='22:00')
{
echo 'yes we are open';
}
else
{
echo 'sorry we are closed';
}
2

Лучше выполнять операцию меньше / больше чем на объекте DateTime. Также я думаю, что у вас есть >= а также <= растерялся, и у вас есть дополнительный кронштейн.

Я изменил имя $saat переменная к $now чтобы сделать это более понятным.

date_default_timezone_set("Europe/Istanbul");

//Create a DateTime Object represent the date and time right now
$now = new DateTime();

//Today's Opening Date and Time
$open  = new DateTime( $now->format('Y-m-d').' 08:00' );

//Today's Closing Date and Time
$close = new DateTime( $now->format('Y-m-d').' 22:00' );

if ($now >= $open && $now <= $close) {
echo ('yes we are open');
}
else ('sorry we are closed');{
}

На заметку, я никогда не использую date() из-за проблемы 2038 (Google это). DateTime не подвержен таким проблемам.

1

Если вам не нужны минуты, вы можете сделать это следующим образом

date_default_timezone_set("Europe/Istanbul");
$saat = date("h");
if ($saat<=8 && $saat>=22) {
echo ('yes we are open');
} else {
echo('sorry we are closed');
}
0

Вы можете использовать свое состояние как

if (strtotime($saat) <=strtotime('08:00') && strtotime($saat) >=strtotime('22:00'))
0

Хорошо, вот код:

date_default_timezone_set("Asia/Karachi");
$t=time();
//echo(date("H:i",$t)); // Current Time
$hour = (date("H",$t)); // Current Hour
$minute = (date("i",$t)); //Current Minuteif (($hour <= 8)&&($hour >= 22)) {
echo "We are open";
}
else {
echo "sorry we are closed";
}
0
По вопросам рекламы [email protected]