一个保存时间的字段怎么存储数据
有一个字段需要存储时间,并且需要把这个字段所有的值相加,然后换算成正确的时间。比如
1,5分钟45秒 存储为 5.45
2,120分钟01秒 存储为120.01
3,89分钟19秒 存储为89.19
=====
合计起来就是 5.45+120.01+89.19=214.65 但是和本来的数值不一样的
有没有什么好办法来解决这个问题呢,我觉得不能存储成这样,比如把用户输入的时间数全部转换成秒数存储到数据库,这样靠谱点,直接秒数相加就可以了。也不会出错。
但是怎么样把用户输入的数值转换成秒数呢
------解决方案--------------------
<br /> $input = 1234.5678;<br /> strtok((string)$input,'.');<br /> $s = strtok((string)$input,'.') * 60 + strtok('.');<br /> echo $s.'秒'; <br />
<br />$t = array('3H45.26','1H5.10','30.59');<br /><br />echo sumT($t); // 5H21.35<br /><br />function sumT($t){<br /> $sum = 0;<br /> if($t){<br /> foreach($t as $v){<br /> $sum += getSecond($v);<br /> }<br /> }<br /> return tostr($sum);<br />}<br /><br /><br />function getSecond($str){<br /> if(strstr($str,'H')==''){<br /> $str = '0H'.$str;<br /> }<br /> $str = str_replace('H','.',$str);<br /> list($h, $m, $s) = explode('.', $str);<br /><br /> return $h*3600+$m*60+$s;<br />}<br /><br />function tostr($t){<br /> $h = (int)($t/3600);<br /> $m = (int)($t%3600/60);<br /> $s = $t%3600%60;<br /><br /> $h = $h>0? $h.'H' : '';<br /><br /> return $h.$m.'.'.$s;<br />}<br />
echo strtotime('034526') - strtotime(date('Y-m-d')),13526