在我的数据库中有24h格式的开始时间和结束时间。我写一个函数来显示结果取决于时间。
$day_start=06:00;
$day_end=22:59;
$night_start=23:00;
$night_end=05:59;
$dtarif=30USD;
$ntarif=80USD;
function showtarif($day_start,$day_end,$night_start,$night_end,$dtarif,$ntarif)
{
$current=date("H:i");
if ($current =>$day_start && $current <=$day_end) {
$absulate_tarif=$dtarif;
}
else if ($current >=$night_start && $current <=$night_end) {
$absulate_tarif=$ntarif;
}
return $absulate_tarif;
}
当我调用我的函数时,它总是显示为null。
答案 0 :(得分:1)
你必须记住两件事:
比较运算符>=
和<=
无法比较字符串。为此,需要内置函数strcmp
。
一个函数只能访问那些在函数内部创建的变量(除非与global
关键字一起使用)。
在我看来,您不应该创建$day_start
,$day_end
,$night_start
,$night_end
,$dtarif
和$ntarif
等变量。只需将它们的值放在正确的位置,使代码更简洁:
function showtarif(){
$current = date("H:i");
if(strcmp($current, "06:00") >= 0 && strcmp($current, "22:59") <= 0){
return "30USD";
}
return "80USD";
}
答案 1 :(得分:0)
将时间和金额用引号括起来
$day_start="06:00";
$day_end="22:59";
$night_start="23:00";
$night_end="05:59";
$dtarif="30USD";
$ntarif="80USD";