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
나는 90 분에서 14:00까지 추가하면 15:30이 될 것으로 예상합니다. 나는 또한과 같이, strtotime
의 첫 번째 PARAM을 평가하기 위해 eval
를 사용하려고했습니다
open time: 14:00; offset in minutes: 90; final time: 5414
:이 결과
$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 = 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을 반환한다는 것입니다. 여기서 내가 뭘 잘못하고 있니?
을 때 문제를 해결해야 1 I 교체. 'i'매개 변수는 앞에 오는 0이있는 분을 나타냅니다 (http://www.php.net/manual/en/function.date.php 참조). 숫자 1은'date()'에 유효한 매개 변수가 아닙니다. – EmmyS
죄송합니다. 돌아가서 제 코드를 살펴 봤습니다. 귀하의 답변은 거꾸로되었지만 귀하가하신 말씀을 봅니다. 오타를 만들었고 문자 1로 사용했던 숫자 1을 바꿀 필요가 있습니다. 그리고 그것은 실제로 문제를 해결했습니다. 감사. – EmmyS