2014-11-03 2 views
0

У меня возникла проблема получить разницу в месяце между двумя датами в месяцах.Время между двумя датами («F j, Y») датируется на php

$d1 = date_create('January 1, 2013'); 
$date = date("F j, Y"); 
$d2 = date_create($date); 
$dif = date_diff($d1, $d2); 
//echo $dif->format('%y years'); 
echo $dif->format('%m months'); 

Показаны месяцы, но не вся разница в месяцах. Я просто хочу разницу между месяцами.

+0

Этот код выставляет «10 месяцев», но реальный разницу составляет 22 месяца. –

+0

Что означает «дата» («F j, Y»)? Почему вы не печатаете вторую дату. – ericpap

+0

Показывает текущую дату –

ответ

2

%m отображается только до 11 месяцев. По прошествии этих лет. Если вы хотите весь месяц вы должны фигурировать в годах, и сделать некоторую математику:

$d1 = date_create('January 1, 2013'); 
$d2 = date_create(); 
$dif = date_diff($d1, $d2); 
echo ($dif->format('%m') + $dif->format('%y') * 12) . ' months'; 

Demo

FYI, указанное решение удаляет ненужный код. Если вы хотите сегодняшнюю дату, вы просто не передаете никаких параметров date_create().

+0

Спасибо @jhon Conde –

+0

Было ощущение, что вы будете здесь. OP - хорошие руки;) –

Смежные вопросы