10

PHPで2つの日付をマイナスしたい

例えば:

$date1 = 08/16/2013;
$date2 = 08/23/2013;
$answer = date2 - date1;

$answer は 7 である必要があります。どうすればいいですか? どうもありがとうございます

4

4 に答える 4

21

日付/時刻操作にDateTimeクラスの使用を開始します。

$date1 = new DateTime('08/16/2013');
$date2 = new DateTime('08/23/2013');
$diff = $date1->diff($date2);
print_r($diff); // or $diff->days

出力:

DateInterval Object
(
    [y] => 0
    [m] => 0
    [d] => 7
    [h] => 0
    [i] => 0
    [s] => 0
    [invert] => 0
    [days] => 7
)

DateTime:diff()の詳細を参照してください。


さまざまなstrtotime()の例は、日付/時刻の差の計算では正しくないことに注意してください。2013-03-31 21:00最も単純な例は、との違い2013-03-30 21:00です。これは肉眼では正確に 1 日の差ですが、この 2 つの日付を差し引くと、82800秒である0.95833333333333日が得られます。これは、冬時間から夏時間への時間の変更によるものです。DateTime はうるう年とタイムゾーンを適切に処理します。

于 2013-08-23T06:40:25.233 に答える
3

これを試して -

<?php
$date1 = strtotime('08/16/2013');
$date2 = strtotime('08/23/2013');

echo $hourDiff=round(abs($date2 - $date1) / (60*60*24),0);
?>
于 2013-08-23T06:53:01.203 に答える
0

strtotime日付とマイナスの日付を取得できます

$diff = abs(strtotime('08/16/2013') - strtotime('08/23/2013'));

echo $min = floor($diff / (60*60*24)); // 7
于 2013-08-23T06:38:50.833 に答える
-1
$date1 = '08/16/2013';
$date2 = '08/23/2013';
$days = (strtotime($date2) - strtotime($date1)) / (60 * 60 * 24);
print $days; 
于 2013-08-23T06:36:27.153 に答える