Моя цель показать сообщение, если временной диапазон находится между заданным диапазоном, если не отображать другое.
Я старался;
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');{
}
Я знаю, что делаю ошибку, пытаясь понять, что если время находится между диапазонами, но я не могу преодолеть проблему.
жду ваших ответов.
Попробуйте следующее.
$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';
}
Попробуй это
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';
}
Лучше выполнять операцию меньше / больше чем на объекте 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
не подвержен таким проблемам.
Если вам не нужны минуты, вы можете сделать это следующим образом
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');
}
Вы можете использовать свое состояние как
if (strtotime($saat) <=strtotime('08:00') && strtotime($saat) >=strtotime('22:00'))
Хорошо, вот код:
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";
}