дата — Как рассчитать продолжительность с 01-01-2016 по 31-01-2016. получить ответ 1 месяц в переполнении стека

Рассчитать продолжительность двух дат в PHP

Пример :

Дата начала : 01-01-2016

Дата окончания : 31-01-2016

Я получаю ответ 30 дней, но я хочу результат 1 месяц

Больше примеров:

С 01-01-2016 по 31-01-2016 = 1 месяц

С 01-02-2016 по 29-02-2016 = 1 месяц

С 01-03-2016 по 31-03-2016 = 1 месяц

покажите ..

-1

Решение

<?php
$date1 = '2000-01-20';
$date2 = '2000-02-20';

$ts1 = strtotime($date1);
$ts2 = strtotime($date2);

$year1 = date('Y', $ts1);
$year2 = date('Y', $ts2);

$month1 = date('m', $ts1);
$month2 = date('m', $ts2);

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

Я думаю, что это поможет вам.

0

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

Вот что я попробовал.

Найдите первый и последний день месяца первой даты и сравните их с заданными датами. Если они совпадают, выводится «1 месяц», иначе выводится количество дней, например «n дней».

$date1 = "2016-02-01";
$date2 = "2016-02-29";

$output = "";
if ($date1 == date("Y-m-01", strtotime($date1)) && $date2 == date("Y-m-t", strtotime($date1))) {
$output = "1 month";
} else {
$output = ((strtotime($date2) - strtotime($date1)) / 86400 + 1) . " days";
}

echo $output;
0

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