一个保存时间的字段怎么存储数据
程序员文章站
2024-01-24 11:39:16
...
有一个字段需要存储时间,并且需要把这个字段所有的值相加,然后换算成正确的时间。比如
1,5分钟45秒 存储为 5.45
2,120分钟01秒 存储为120.01
3,89分钟19秒 存储为89.19
=====
合计起来就是 5.45+120.01+89.19=214.65 但是和本来的数值不一样的
有没有什么好办法来解决这个问题呢,我觉得不能存储成这样,比如把用户输入的时间数全部转换成秒数存储到数据库,这样靠谱点,直接秒数相加就可以了。也不会出错。
但是怎么样把用户输入的数值转换成秒数呢
恩,明白了,那有时候如果时间有小时怎么办呢,比如现在是3H45.26,即3小时45分钟26秒
但是有时候有的就只是有分钟,没有小时,这种情况怎么办,不能让用户自己把小时转换成分钟吧,难道3小时45分钟要用户输入205.26这样吗~
我就是不知道怎么做,也没思路
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.'秒';
$input = 1234.5678; $s = strtok((string)$input,'.') * 60 + strtok('.'); echo $s.'秒';
$input = 1234.5678; $s = strtok((string)$input,'.') * 60 + strtok('.'); echo $s.'秒';
恩,明白了,那有时候如果时间有小时怎么办呢,比如现在是3H45.26,即3小时45分钟26秒
但是有时候有的就只是有分钟,没有小时,这种情况怎么办,不能让用户自己把小时转换成分钟吧,难道3小时45分钟要用户输入205.26这样吗~
我就是不知道怎么做,也没思路
楼主研究下strtotime()这个函数看能不能实现
5.45+120.01+89.19=214.65
60?制,用10?制加,?然不?。
建?先全部?成秒?,再相加。
$t = array('3H45.26','1H5.10','30.59');echo sumT($t); // 5H21.35function 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
推荐阅读
-
一个保存时间的字段怎么存储数据
-
mysql数据库表示时间的字段为什么可以用int类型啊这样与datetime相比有什么好处?该怎么处理
-
想做一个用户量非常小的网站,数据存储要怎么选?
-
怎么用一个ajax把一个div里的数据提交给后台的php执行呢,就是保存?
-
一个保存时间的字段如何存储数据
-
怎么用shell脚本遍历数据库某个表,一个字段下的所有内容
-
想做一个用户量非常小的网站,数据存储要怎么选?
-
怎么用shell脚本遍历数据库某个表,一个字段下的所有内容
-
php 怎么检测一个数据库字段是否是唯一的
-
怎么才能把数据库的中的数据以一个条件查询出来,然后统计里面的另一个字段中存的数据累加一共是多少.