店舗の開店時間とオフセットに基づいて配達時間を生成する必要があります。開始時間は正しく生成され、オフセットは正しく生成されますが、それらを正しく組み合わせることができないようです。私はこれをいくつかの方法で試しました:
$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:
ここでも、14:00 に 90 分を加算すると 15:30 が返されるという結果が望まれます。ここで何が間違っていますか?