Я сохраняю значения длительности в базе данных, чтобы узнать, сколько у меня есть возможностей для работы в данную рабочую неделю. Например, у меня есть следующие входные данные для расчета продолжительности пропускной способности, которую я имею за неделю, исходя из общей продолжительности, сокращенной продолжительности (например, времени обеда, встреч, перерывов в туалете и т. д.) и процента, от которого нужно уменьшить. Так, например, у меня есть следующие значения:
$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
из $reduced_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% часов, минут и секунд или сделаю что-то еще? Есть идеи, ребята?
strtotime
, то не совсем так, поскольку я не использую значения даты или отметки времени. если вы знаете другой метод, пожалуйста, поделитесь ?? - person 001221   schedule 22.11.2015