問題があることだけを返すとdate()の時間部分では、 より大きいものを一日中削除していますので、00:00から23:59までの間に何かが返されます。 date()以外のものを使用し、すべての秒が加算された場合のみ使用してください。
ので、代わりにあなたは、このような何か試してみてください:第二の問題は、(それのstrtotimeある
function sec2hours($seconds){
$units = array(
'hours' => 3600,
'minutes' => 60,
'seconds' => 1,
);
foreach($units as &$unit){
$quot = intval($seconds/$unit);
$seconds -= $quot * $unit;
$unit = $quot;
}
$str = array();
foreach($units as $name => $value){
$str[] = ($value === 0?'00':$value);
}
return implode(':',$str);
}
$sum = 0;
foreach($hours as $h){
$sum += strtotime($h->horas) - strtotime('00:00');
}
$sumaHoras = sec2hours($sum);
)を使用すると、1つを得ればそう 、25:00のような日にロールオーバーしていなければならない時間にfalseを返します。そのように入力すると、0 - strtotime('00:00 ')になり、巨大な負の値になります。 しかし、すべての入力が00-23:00-59の間であれば問題ありません。
このコードは役に立ちだと思います。 – Vladislav
ありがとうValadislav –
もしそれが参考になって答えのように聞こえるなら、私は答えとしてそれを掲示するでしょう。 ) – Vladislav