Я не профессиональный разработчик, поэтому, пожалуйста, не расстраивайте меня, если это очевидно ...
У меня есть таблица в базе данных, и мне нужно подвести итоги времени из столбца в часах, минутах и секундах. Мне нужно, чтобы вычисления происходили в PHP для дальнейшего использования после этой транзакции.
Мое время в базе данных отформатировано так:
01:30:00
01:00:00
00:00:00
00:00:00
Мой код такой:
date_default_timezone_set(UTC);
while($sql_row = mysqli_fetch_array($sql_query)){
$time = $sql_row['time'];
$total_time = strtotime("1970-01-01 ".$time)+strtotime("1970-01-01 ".$total_time);
echo date('H:i:s',$total_time)."<BR>";
}
echo date('H:i',$total_time);
Проблема в том, что выход показывает, что он вообще не добавляется для первых двух строк. Затем для всех строк, которые вводятся с 00:00:00, я получаю 12:00:00, как это.
1:00:00
1:30:00
12:00:00
12: 00: 00
Я поиграл с этим тысячей способов и думаю, что это как-то связано с меткой времени unix, которая составляет +11/12 часов от моего местного времени. (ВРЕМЯ ПО ГРИНВИЧУ). Я попытался использовать date_default_timezone_set (UTC), но затем я получил тот же результат. Я ожидаю, что это зацикленное значение повторится в 02:30:00, поскольку последние значения не должны ничего добавлять к значению.
Чтобы проверить это без цикла, я попробовал это:
date_default_timezone_set(UTC);
$date = date('Y-m-d');
$time1 = "01:00:00";
$time2 = "01:30:00";
$time3 = "00:00:00";
$total = strtotime($date." ".$time1)+strtotime($date." ".$time2)+strtotime($date." ".$time3);
echo date('H:i:s',$total);
И это прекрасно работает! Некоторым образом я думаю, что цикл while влияет и на него, но я нигде не вижу ссылки на добавление времени в циклы while в PHP.
Заранее спасибо за любую помощь