vovanium
Новичок
Разница дат в месяцах
Возникла задача посчитать количество полных месяцев между двумя датами.
Т.е. к примеру
2008-06-15 и 2008-07-15 = 1 месяц
2008-06-15 и 2008-07-14 = 0 месяцев и т.п.
Функция должна возвращать как положительные когда первая дата меньше второй, так и отрицательные результаты.
Вот что смог родить в 3 часа ночи:
Ваши варианты?
P.S. В память о теме о 10 случайных числах
Возникла задача посчитать количество полных месяцев между двумя датами.
Т.е. к примеру
2008-06-15 и 2008-07-15 = 1 месяц
2008-06-15 и 2008-07-14 = 0 месяцев и т.п.
Функция должна возвращать как положительные когда первая дата меньше второй, так и отрицательные результаты.
Вот что смог родить в 3 часа ночи:
PHP:
function monthDiff($date1, $date2) {
$rev = $date1 > $date2 ? -1 : 1;
if (preg_match("/^(\d{4})\D(\d{1,2})\D(\d{1,2})$/", $rev > 0 ? $date1 : $date2, $m1) && preg_match("/^(\d{4})\D(\d{1,2})\D(\d{1,2})$/", $rev > 0 ? $date2 : $date1, $m2)){
return $rev * (($m2[1] - $m1[1]) * 12 + ($m2[2] - $m1[2]) - ($m2[3] >= $m1[3] ? 0 : 1));
}
return false;
}
echo monthDiff ('2008-06-15', '2008-07-15');
P.S. В память о теме о 10 случайных числах