检查当前时间是否在特定时间之间

时间:2014-04-10 11:14:52

标签: php

在我的数据库中有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。

2 个答案:

答案 0 :(得分:1)

你必须记住两件事:

  1. 比较运算符>=<=无法比较字符串。为此,需要内置函数strcmp

  2. 一个函数只能访问那些函数内部创建的变量(除非与global关键字一起使用)。

  3. 在我看来,您不应该创建$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";
    }
    

    DEMO

答案 1 :(得分:0)

将时间和金额用引号括起来

$day_start="06:00";
$day_end="22:59";

$night_start="23:00";
$night_end="05:59";

$dtarif="30USD";
$ntarif="80USD";