このスクリプトは一貫性のない日数を返します。localhost では 14 日が返され、クライアント サーバーでは 15 日が返されます。
$_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');
問題が修正され、スクリプトは両方の日付に対して正しい日数を返すようになりました。どれくらいの期間 - わかりません。これですべての日付が修正されることを願っています:)