私は二日の間の日数を計算しようとしているが、私は夏時間の問題に実行していますよ。ここに私のコードです:PHPで夏時間を無視し、2つの日付を引く方法は?
function date_diff($old_date, $new_date) {
$offset = strtotime($new_date) - strtotime($old_date);
return $offset/60/60/24;
}
作品罰金限り、日は両方とも同じDST期間内にあるよう:
echo date_diff('3/15/09', '3/18/09'); // 3
でもない、彼らはさらに離れている場合:
echo date_diff('11/15/08', '3/18/09'); // 122.95833333333
I偶数日が必要で、DSTについて気にしないでください。私は結果を丸めることができると思うが、それはkludgyを感じる。より良い(簡単な)方法がありますか?私はそれを避けることができれば一日-解析-とカウント回避 - 飛躍の年の事を記述する必要はしたくありません。
(注:これは、PHP 5.1.6で実行する必要があり、そう5.3の日付の機能の一部が利用できない場合があります。)
もう少し情報:私はオフセットを取るつもりだと追加それはdbにある他のdatetimesに、私は時間の部分ではなく、変更する唯一の日の部分が欲しいです。とにかく、私はそれを追加すると他の方向に1時間遅れてしまうので、丸めがうまくいかないことが分かります。たぶん、あなたは何が相殺されるので、GMTにタイムゾーンを設定しないようにhttp://ca3.php.net/date_default_timezone_setを使用することができます全体の問題へのより良いアプローチ....
私のすべての日付計算が動作する前にこれを追加してください: date_default_timezone_set( 'UTC'); – sprugman
date_default_timezone_set( 'UTC')を使用しています。それを行うには最適な方法です。あなたのページに他の日付が必要な場合は、他の日付の正確さに副作用を引き起こす可能性があることに注意してください。あなたのページに他の日付がない場合は、このコメントを無視してください。 :-) – artlung