对不起,对于一个愚蠢的问题,这肯定是一个非常简单的答案,但我正在遭受大脑冻结!
我想要一个函数,如果当前时间在开始和结束时间之间,则返回true,这样app就不会运行了。实际上是一个“安静的时间”;
用户可以在24小时时间内设置开始时间和结束时间:
$start_time = "0300";
$end_time = "0900";
使用以下几乎可行:
function isQuietTime($start,$end)
{
if((date("Hm") >= $start) && (date("Hm") <= $end)) {return TRUE;} else {return FALSE;}
}
但是如果开始时间是2300,结束时间是0600,当前时间是0300呢?上面的函数将返回false。当开始时间在当前结束之前且结束时间是第二天时,会出现问题。我如何让它工作?
谢谢!
答案 0 :(得分:4)
function fixedIsQuietTime($start, $end)
{
if ($start < $end)
return isQuietTime($start, $end);
else
return ! isQuietTime($end, $start);
}
答案 1 :(得分:1)
我建议使用UNIX时间。因此编写一个函数将输入时间转换为UNIX时间。像这样:
function to_unix_time($string){
// Something like this...
$unix_time = mktime();
return $unix_time;
}
function isQuietTime($start, $end){
$now = time();
$stime = to_unix_time($start);
$etime = to_unix_time($end);
if($now > $stime && $now < $etime){
//its quiet time!
return true;
}
}