欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-18 18:22:52
...
一个保存时间的字段怎么存储数据
有一个字段需要存储时间,并且需要把这个字段所有的值相加,然后换算成正确的时间。比如

1,5分钟45秒 存储为 5.45
2,120分钟01秒 存储为120.01
3,89分钟19秒 存储为89.19

=====

合计起来就是 5.45+120.01+89.19=214.65 但是和本来的数值不一样的

有没有什么好办法来解决这个问题呢,我觉得不能存储成这样,比如把用户输入的时间数全部转换成秒数存储到数据库,这样靠谱点,直接秒数相加就可以了。也不会出错。

但是怎么样把用户输入的数值转换成秒数呢
------解决方案--------------------

$input = 1234.5678;
strtok((string)$input,'.');
$s = strtok((string)$input,'.') * 60 + strtok('.');
echo $s.'秒';

------解决方案--------------------

$t = array('3H45.26','1H5.10','30.59');

echo sumT($t); // 5H21.35

function sumT($t){
$sum = 0;
if($t){
foreach($t as $v){
$sum += getSecond($v);
}
}
return tostr($sum);
}


function getSecond($str){
if(strstr($str,'H')==''){
$str = '0H'.$str;
}
$str = str_replace('H','.',$str);
list($h, $m, $s) = explode('.', $str);

return $h*3600+$m*60+$s;
}

function tostr($t){
$h = (int)($t/3600);
$m = (int)($t%3600/60);
$s = $t%3600%60;

$h = $h>0? $h.'H' : '';

return $h.$m.'.'.$s;
}

------解决方案--------------------
要求用户将 3小时45分钟26秒 写作 034526 这不过分吧?比你的还简单
于是有
echo strtotime('034526') - strtotime(date('Y-m-d')), 
13526
一个保存时间的字段如何存储数据

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频