次の形式で時間のリストを一緒に追加する必要があるものに取り組んでいます。mm:ssなので、3:10は3分10秒になります。
では、たとえば、phpで次の合計をどのように計算しますか?
2:10 + 3:15 + 6:59 + 2:22
次のコードを使用します:
$tarr = array('2:10', '3:15','6:59','2:22');
echo sum_the_time($tarr);
function sum_the_time($times) {
$seconds = 0;
foreach ($times as $time)
{
list($hour,$minute) = explode(':', $time);
$seconds += $hour*3600;
$seconds += $minute*60;
// $seconds += $second;
}
$hours = floor($seconds/3600);
$seconds -= $hours*3600;
$minutes = floor($seconds/60);
$seconds -= $minutes*60;
// return "{$hours}:{$minutes}:{$seconds}";
return sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds);
}
これがデモです:http://codepad.org/dJBY78wZ
ただ楽しみのために:)
function sumTime($times) {
$min = $sec = 0;
foreach($times as $time) {
list($cmin, $csec) = explode(':', $time);
$min += $cmin;
$sec += $csec;
}
return sprintf('%02d:%02d', $min + floor($sec/60), $sec % 60);
}
<?php
function s($str) {
list($minutes,$seconds) = explode(':',$str);
return $minutes * 60 + $seconds;
}
function ms($seconds) {
return sprintf('%02d:%02d', $seconds/60, $seconds%60);
}
$seconds = s('2:10') + s('3:15') + s('6:59') + s('2:22');
echo ms($seconds);