> 백엔드 개발 > PHP 튜토리얼 > 一个保存时间的字段如何存储数据

一个保存时间的字段如何存储数据

WBOY
풀어 주다: 2016-06-13 11:59:51
원래의
921명이 탐색했습니다.

一个保存时间的字段怎么存储数据
有一个字段需要存储时间,并且需要把这个字段所有的值相加,然后换算成正确的时间。比如

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 />
로그인 후 복사

------解决方案--------------------
要求用户将 3小时45分钟26秒 写作 034526 这不过分吧?比你的还简单
于是有
echo strtotime('034526') - strtotime(date('Y-m-d')), 
로그인 후 복사
13526

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿