0
我需要根據商店的開放時間加上偏移量來生成交貨時間。打開時間正確生成,偏移量正確生成,但我似乎無法使它們正確組合。我已經試過這幾種方法:處理php mktime和日期時出現奇怪的結果
$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點加入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。我在這裏做錯了什麼?
這是沒有意義的應該解決您的問題。 'i'參數表示帶前導零的分鐘數(請參閱http://www.php.net/manual/en/function.date.php)。數字1不是'date()'的有效參數。 – EmmyS 2013-02-15 21:32:40
對不起,我回去看看我的代碼。你的迴應是倒退,但我明白你在說什麼。我犯了一個錯字,需要用我寫的一封信來替換我使用的數字1。這確實解決了這個問題。謝謝。 – EmmyS 2013-02-15 21:33:40