有了这个IF声明:
if ( (date('i')>=00) && (date('i')<=19) ) {
$a=1;
}
if ( (date('i')>=20) && (date('i')<=39) ) {
$a=2;
}
if ( (date('i')>=40) && (date('i')<=59) ) {
$a=3;
} else {
$a=0;
}
当date('i')
例如为“03”时,我收到a=0
而不是a=1
。
不应该认为03大于00?
实现我想要的最佳方式是什么?
答案 0 :(得分:3)
它与变量类型无关。
最后一个if语句使你的前两个不相关。 $a
只会是3
或0
。您需要else if
。
另外,将date('i')
分配给变量以避免不断调用它。
$d = date('i');
if ($d >= 00 && $d <= 19) {
$a = 1;
}
else if ($d >= 20 && $d <= 39) {
$a = 2;
}
else if ($d >= 40 && $d <= 59) {
$a = 3;
} else {
$a = 0;
}
或者,为了使事情更整洁:
$d = date('i');
$a = 0;
if($d >= 00) $a = 1;
if($d >= 20) $a = 2;
if($d >= 40) $a = 3;
答案 1 :(得分:0)
在PHP中,函数date()返回一个字符串,因此将date与integer进行比较的最佳方法是进行转换。
尝试使用此语法:if((int)date('i') > 0 && (int)date('i') <= 19) { $a = 1; }
最诚挚的问候, 茴香