2016-02-05 2 views
1

Я знаю, это глупый вопрос, но мне нужно, чтобы вы помогали парням.Граф Месяц от 2-х дней

Theres что-то странное, если я использую DateDiff,

пример

$begin = "2016-01-01"; $end = "2016-01-31"; 
$date1=date_create(date_format($begin,"Y-m-d")); 
$date2=date_create(date_format($end,"Y-m-d")); 

$diff=date_diff($date1,$date2); $month = $diff->format("%m"); 

когда я эхо $ месяц показать 0. Это должно быть 1, потому что последний день января 31 дней. Но почему это шоу 0?

Если я изменить $end = "2016-02-01";

это становится 1. Можете ли вы помочь мне это?

+5

Это не один месяц. Это 30 дней. –

+0

там должен быть метод под названием 'TimeSpan' –

+0

@Rihard - Итак, solutio? @ Arjit - так как это использовать?
Я действительно застрял :( – Wolfzat

ответ

1

Возврат правильного ответа, поскольку разница составляет 30 дней, поэтому месяц еще не прошел.

0
<?php 
$timeStart = strtotime("2016-01-01"); 
$timeEnd = strtotime("2016-01-31"); 
// Adding current month + all months in each passed year 
$months = 1 + (date("Y",$timeEnd)-date("Y",$timeStart))*12; 
// Add/subtract month difference 
$months += date("m",$timeEnd)-date("m",$timeStart); 

echo $months; 
?> 
0

вы можете попробовать это,

<?php 
$begin = "2016-01-01"; $end = "2016-01-31"; 
$date1=new DateTime($begin); 
$date2=new DateTime($end); 
$date2->add(new DateInterval('P1D')); 
$diff=$date2->diff($date1); 
$month = $diff->m; 
print_r($month); 
?> 
+0

все еще не работает :( – Wolfzat

+0

Я обновил код, вы можете попробовать еще раз –

+1

ну, я сам пробовал, и это работа, а просто $ diff-> m; Это работает lol. Tq для помощи – Wolfzat

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