Рассчитать месяцы от двух дат

Мне нужно рассчитать месяцы от двух дат

Например :

Если date1 = '2014-08-20' означает 20 августа 2014

& date2 = '2014-09-17' значит сегодня дата

тогда мне нужно разницу months = 2 (Aug + September)

Так же

     If `date1 = '2014-03-15'` means 15th March 2014

&  `date2 =  '2014-09-17'`  means today date

тогда мне нужно разницу months = 7 (March + April + May + June + July + Aug + SEPT)

Как я могу сделать с функциями даты PHP?

2

Решение

Это то, что вы ищете?

$date1 = new DateTime('2014-08-20');
$date2 = new DateTime('2014-09-17');

echo  $date2->format('n') - $date1->format('n') + 1;
2

Другие решения

$date1 = new DateTime('2014-08-20');
$date2 = new DateTime('2014-09-17');

$diff = $date2->diff($date1);

$diff->format('%m months');
2

Если вы хотите учесть каждый прошедший месяц, вы можете попробовать это:

$date1 = new DateTime('2014-03-15');
$date2 = new DateTime();
$date2->modify('last day of this month'); // adjust it to take into account
$int = new DateInterval('P1M'); // every month
$count = 0;
$range = new DatePeriod($date1, $int, $date2);
foreach($range as $d) {
++$count; // for each month incremenent
}
echo $count;
2

Вы можете сделать это следующим образом.

Рассмотрим этот пример:

<?php
$start    = new DateTime('2011-12-02');
$start->modify('first day of this month');
$end      = new DateTime('2012-05-06');
$end->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period   = new DatePeriod($start, $interval, $end);

foreach ($period as $dt) {
$monthNum=$dt->format("m");
echo $dt->format("Y").date('F', mktime(0, 0, 0, $monthNum, 10)). PHP_EOL;
}

Смотрите в действии Вот

Ссылка : Как перечислить все месяцы между двумя датами

0

Вы можете сделать с:

$first_date = '2014-03-15';
$second_date = '2014-09-17';

$date1 = strtotime($first_date);
$date2 = strtotime($second_date);

$year1 = date('Y', $date1);
$year2 = date('Y', $date2);

$month1 = date('m', $date1);
$month2 = date('m', $date2);

$diff = (($year2 - $year1) * 12) + ($month2 - $month1);

Но для подсчета разницы в днях мы также можем сделать следующее:

$date_interval = $first_date->diff($second_date);
echo "difference " . $date_interval->y . " years, " . $date_interval->m." months, ".$date_interval->d." days ";

Проверьте эту ссылку ссылка на сайт

0
По вопросам рекламы [email protected]