이 스크립트는 일치하지 않는 일 수를 반환합니다. localhost에서 클라이언트 서버에서 14 일을 반환하면 15 일을 반환합니다.PHP에서 일치하지 않는 일 계산
$_POST['pickup_time'] = '13:30';
$_POST['dropoff_time'] = '12:00';
$_POST['pickup_date'] = '2013-10-16';
$_POST['dropoff_date'] = '2013-10-30';
$fmt_pickup_date = strtotime($_POST['pickup_date']);
$fmt_dropoff_date = strtotime($_POST['dropoff_date']);
$days = ceil(abs($fmt_dropoff_date - $fmt_pickup_date)/86400);
if ($vehicles[$v]['vehicle_cal_date']==0)
{
$fmt_pickup_time = str_replace(":", "", $_POST['pickup_time']);
$fmt_dropoff_time = str_replace(":", "", $_POST['dropoff_time']);
if (($fmt_dropoff_time-$fmt_pickup_time)>=1)
{
$days++;
}
}
else { $days++; }
일부 날짜는 올바른 날 수와 틀린 날 (+1 일)을 반환합니다.
[pickup_time] => 11:00
[dropoff_time] => 10:00
[pickup_date] => 2013-10-28
[dropoff_date] => 2013-11-01
이 날짜는 두 서버에서 모두 4 일 동안 반환됩니다.
아이디어가 있으십니까? 뭐가 잘못 되었 니?
는편집 :
date_default_timezone_set('UTC');
수정 문제와 현재 스크립트가 올바른 일 두 날짜를 계산 반환
것으로 보인다. 얼마나 오래 - 전혀 모르겠다. 나는 이것이 모든 날짜에 대해 고칠 것이라고 희망한다 :
사용중인 서버가 어떤 시간대에 구성되어 있습니까? 어쩌면 그들은 다른 날짜가있을 것입니다. –
당신은 정말로 문자열에 '수학'을해서는 안됩니다. '13 : 30' -'12 : 00'이 효과가 있을지 모르지만, 당신이하고있는':'=> 빈 문자열 교체로도 여전히 엉뚱한 편입니다. 왜이 모든 '수학'을하기 위해 제공된 PHP DateTime 클래스를 사용하지 않습니까? –
'vehicle_cal_date'변수에 차이가 있습니까? 이것이 일을 일으킬 수있는 ++? – Egari