如果时间范围在给定范围之间,我的目标是显示消息如果不显示另一个范围。 我试过了;
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 :(得分: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';
}
答案 1 :(得分:2)
尝试以下方法。
$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 :(得分:1)
最好在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问题(谷歌)。 DateTime
不会遇到此类问题。
答案 3 :(得分:0)
如果您不关心会议记录,可以像这样做
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');
}
答案 4 :(得分:0)
你可以像
一样使用你的条件if (strtotime($saat) <=strtotime('08:00') && strtotime($saat) >=strtotime('22:00'))
答案 5 :(得分: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 Minute
if (($hour <= 8)&&($hour >= 22)) {
echo "We are open";
}
else {
echo "sorry we are closed";
}