1

私は常に以下のコードを使用して、2 つの日付の差 (日数) を計算してきました。しかし、もっとインテリジェントなものがあるかどうか疑問に思っています。誰かがこれを行うためのより良い方法を知っていますか?

//86400 one day
$data1 = '2013-07-24 21:30:00';
$data2 = '2013-08-24 21:30:00';

$diff =  (abs(strtotime($data1) - strtotime($data2))) / 86400;

var_dump($diff);
4

1 に答える 1

6

DateTime:diffを使用できます。

$data1 = new DateTime('2013-07-24 21:30:00');
$data2= new DateTime('2013-08-24 21:30:00');
$interval = $data1->diff($data2);
echo $interval->format('%R%a days');

入力日付の形式が異なる場合、より良い結果を得るためにDateTime::createFromFormatを使用することもできます。次に例を示します。

$date1 = DateTime::createFromFormat('Y-m-d H:i:s', '2013-07-24 21:30:00');
$date2 = DateTime::createFromFormat('Y-m-d H:i:s', '2013-08-24 21:30:00');
$interval = $date1->diff($date2);
echo $interval->format('%R%a days');
于 2013-07-25T01:12:57.793 に答える