几个月到一年

时间:2014-03-10 14:19:16

标签: php date

我想知道如何在php中输出给定月份的年数。

例如:

我会给12个月。输出为:1年

我会给6个月。产量为6个月

我会给你24个月。输出为2年

我会给你18个月。产量为1年6个月

我不知道如何处理这个问题。

谢谢!

4 个答案:

答案 0 :(得分:2)

简单的数学运算怎么样?

$input  = 16;
$months = $input % 12;
$years  = floor($input / 12);

输出:

$months = 4;
$years  = 1;
顺便说一句 - 在你的例子中你有一个错误 - 16个月不等于1年零6个月。

答案 1 :(得分:0)

我认为应该这样做。

$years= floor($num_months/12).' '.($num_months % 12).' months';

答案 2 :(得分:0)

使用整数和模块化除法。整数除法将给出年数,模块除法将给出月数:

$years = floor($totalMonths / 12);
$months = $totalMonths % 12;

答案 3 :(得分:0)

您只需创建DateInterval对象和recalculate carry over points即可获得正确的数字:

$interval = DateInterval::createFromDateString('16 months');
$from = new DateTime;
$to = clone $from;
$to->add($interval);
$diff = $from->diff($to);
foreach ($diff as $k => $v) $interval->$k = $v;

if ($interval->y && $interval->m) {
    return $interval->format('%y year %m month');
} elseif ($interval->y) {
    return $interval->format('%y year');
} else {
    return $interval->format('%m month');
}

demo

P.S。我希望你可以照顾单个或复数词?