我需要根据商店的开业时间加上偏移量生成交货时间。打开时间生成正确,偏移量生成正确,但我似乎无法正确组合它们。我已经尝试了几种方法:
$open = array('open_hr' => 14, 'open_min' => 0);
$tmpTime = mktime($open['open_hr'], $open['open_min']);
$openTime = date('G:i', $tmpTime);
$tmpOffset = 90; //in minutes
$tmpOpenWithOffset = $tmpTime + $tmpOffset * 60;
$finalTime = date('G:1', $tmpOpenWithOffset);
echo "open time: " . $openTime . "; offset in minutes: " .$tmpOffset . "; final time: " .$finalTime;
这样做的结果是:
开放时间:14:00;偏移量(分钟):90;最终时间:15:1
我预计14:00加90分钟会得到15:30。
我也尝试过这种方式:
$open = array('open_hr' => 14, 'open_min' => 0);
$tmpTime = mktime($open['open_hr'], $open['open_min']);
$openTime = date('G:i', $tmpTime);
$tmpOffset = 90;
$finalTime = strtotime('+'.$tmpOffset . ' minutes', $openTime);
echo "open time: " . $openTime . "; offset in minutes: " .$tmpOffset . "; final time: " .$finalTime;
这导致:
open time: 14:00; offset in minutes: 90; final time: 5414
我还尝试使用eval
来评估strtotime
的第一个参数,如下所示:
$open = array('open_hr' => 14, 'open_min' => 0);
$tmpTime = mktime($open['open_hr'], $open['open_min']);
$openTime = date('G:i', $tmpTime);
$tmpOffset = 90;
$tmpStr = eval('+'.$tmpOffset . ' minutes');
$finalTime = strtotime($tmpStr, $openTime);
echo "open time: " . $openTime . "; offset in minutes: " .$tmpOffset . "; final time: " .$finalTime;
这导致:
Parse error: syntax error, unexpected $end in /t.php(7) : eval()'d code on line 1
open time: 14:00; offset in minutes: 90; final time:
同样,所需的结果是,将90分钟添加到14:00将返回15:30。我在这里做错了什么?
打字错误:
$finalTime = date('G:1', $tmpOpenWithOffset);
当您采用第一个解决方案