【发布时间】:2016-02-24 05:14:15
【问题描述】:
我将持续时间值存储在数据库中,以了解在给定的工作周内我需要做多少事情。例如,我有以下输入来根据总持续时间、减少的持续时间(例如午餐时间、会议、上厕所等)和减少的百分比来计算我在一周内的容量持续时间。例如,我有以下值:
$total_duration = 30:30:00; //(37 hours 30 mins 00 secs)
$reduced_duration = 01:00:00; //(1 hour 00 mins 00 secs)
$capacity_percentage = 90%; // capacity percentage for leeway
因此,我想从$reduced_duration 中减去$total_duration,然后得到$capacity_percentage 总数的百分比。
我正在尝试以下方法;
$total_duration = '30:30:00'; //(37 hours 30 mins 00 secs)
$reduced_duration= '01:00:00'; //(1 hour 00 mins 00 secs)
$capacity_percentage ='90%'; // capacity percentage for leeway
$total_duration_hrs = 0;
$total_duration_mins = 0;
$total_duration_secs = 0;
$reduced_duration_hrs = 0;
$reduced_duration_mins = 0;
$reduced_duration_secs = 0;
list($total_duration_hours, $total_duration_minutes, $total_duration_minutes) = explode(':', $total_duration);
list($reduced_duration_hours, $reduced_duration_minutes, $reduced_duration_seconds) = explode(':', $reduced_duration);
$total_duration_hrs += (int) $total_duration_hours;
$total_duration_mins += (int) $total_duration_minutes;
$total_duration_secs += (int) $total_duration_minutes;
$reduced_duration_hrs += (int) $reduced_duration_hours;
$reduced_duration_mins += (int) $reduced_duration_minutes;
$reduced_duration_secs += (int) $reduced_duration_seconds;
$totalhrs = ($total_duration_hrs - $reduced_duration_hrs);
$totalmins = ($total_duration_mins - $reduced_duration_mins);
$totalsecs = ($total_duration_secs - $reduced_duration_secs);
这给了我正确的总时间,即29:30:30。但现在我有点不确定如何找到百分比时间值,我会找到 90% 的小时、分钟和秒,还是会做其他事情?有什么想法吗?
【问题讨论】:
-
你能以秒为单位将持续时间值存储在数据库中吗?这将使计算变得更加容易。
-
@Tristan 如果您的意思是使用
strtotime,那么并不是真的,因为我没有使用日期或时间戳值。如果您知道另一种方法,请分享??
标签: php math time percentage duration