计算codeigniter中年,月,日字段的十进制总体验

时间:2018-01-16 07:36:21

标签: php

一个人有两种经历,即一次经历大约3年11个月,所以我们把它写成3.11,第二次经历大约是2年零4个月,写成2.4。当我们添加它时,结果必须是6.3因为有12个月

我分开了几年,几个月和几天的时间。 HTML

<input type="text" id="exp6_year" name="exp6_year" value=""/>
<select id="exp6_mon" name=">
 <option value="0.0">0</option>
 <option value="0.1">1</option>
 <option value="0.2">2</option>
 <option value="0.3">3</option>
 <option value="0.4">4</option>
 <option value="0.5">5</option>
 <option value="0.6">6</option>
 <option value="0.7">7</option>
 <option value="0.8">8</option>
 <option value="0.9">9</option>
 <option value="0.10">10</option>
 <option value="0.11">11</option>

<select id="exp6_day" name="exp6_day">
 <option value="0">0</option>
 <?php for ($a = 1; $a <= 29; $a++)
 {
   echo '<option value="0.0'.$a.'">'.$a.'</option>';
 }?>

我还有两个字段,分别是exp7_year,exp7_mon,exp7_day,exp8_year,exp8_mon&amp; exp8_day,我想在一列中存储总经验总和 toal_exp。

Example

1 个答案:

答案 0 :(得分:0)

试试这个。

我将字符串分解为数组并使用模数计算来计算月份。

$a = "3.11"; 
$b = "2.9"; 
$c = "3.10"; 
$d = "1.11";
$arr1 = explode(".", $a);
$arr2 = explode(".", $b);
$arr3 = explode(".", $c);
$arr4 = explode(".", $d);

$y = $arr1[0] + $arr2[0] + $arr3[0]  + $arr4[0]; // calculate years
If($arr1[1] + $arr2[1] + $arr3[1] + $arr4[1] >=12) $y += floor(($arr1[1] + $arr2[1] + $arr3[1] + $arr4[1])/12); // add years if months is more than 11 
$m = ($arr1[1] + $arr2[1] + $arr3[1] + $arr4[1])%12; // modulo calculate months

Echo $y . " " . $m;

https://3v4l.org/Ell2S