2013-07-25 2 views
0

Я всегда использовал код ниже, чтобы рассчитать разницу (в днях) между двумя датами. Но мне интересно, есть ли что-то более умное, кто-то знает лучший способ сделать это?разница в днях между двумя датами

//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); 

ответ

5

Вы можете использовать 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');