我已计算加入日期到当前日期的员工体验(月)。我want every **last four months in a year** (eg 9-12 and 21-24 and 33-36 etc....) employee
经验显示为不同颜色。(php code)
First year calculation has no problem after the years the conditions is not satisfy the `above criteria.`
This is my code but i need satisfy above criteria.
if($months % 9 == 0 || $months % 10 == 0 || $months % 11 == 0 || $months % 12 == 0)
{
<span style="color:green;"><?php echo $u_tot_exp;?><span>
}
else
{
<span style="color:black;"><?php echo $u_tot_exp;?><span>
}
答案 0 :(得分:1)
问题是你对模数运算符%
的误解。您正在使用$months % 11 == 0
表示&#34;如果月份是一年中的第11个&#34;,但这并不意味着什么。它实际上意味着&#34;如果月份是第一个月后的十一个倍数&#34;。所以这意味着11月一年(第11个月),然后是10月,下一个(第22个),然后是9月(第33个月)。
效果与% 10
或% 9
相乘。如果我们假设第一年是2014年,它将选择以下几个月:
2014: September, October, November, December
2015: June, August, October, December
2016: March, June, September, December
%
运算符通过计算左边的数字除以右边的数字时的余数来工作。由于我们多年来一直在工作,我们始终需要除以12.然后,您需要检查剩下的数字是否在3
(即9月)和{{1}之间(即12月)。
0
请注意,我还修复了输出HTML的代码。
答案 1 :(得分:0)
**Finally i have get the result using this code.**
<?php
$currentDate = date("d-m-Y");
// joining_date is name of field in DB.
$date1 = date_create("".$u_joining_date.""); //
$date2 = date_create("".$currentDate."");
$diff12 = date_diff($date2, $date1);
$hub_days = $diff12->days;
$months = $diff12->m;
$years = $diff12->y;
$tot_months = (($years * 12) + $months);
//$monthsToGo = $months % 12;
// months remaining in the year
//$monthsmod = $monthsToGo % 10;
if ($tot_months != 0)
{
if($months % 9 == 0 || $months % 10 == 0 || $months % 11 == 0 || $months % 12 == 0)
{
?>
<span style="color:green;"><?php echo $tot_months;?>month(s)<span>
<?php
}
else
{
?>
<span style="color:black;"><?php echo $tot_months;?>month(s)<span>
<?php
}
}
?>