Пресмятане на часове

d_badboy

Registered
От базата данни вземам минимален и максимален час, но и двете стойности може да са от различни дни. Както и да е следва важната част. Имам един вид странициране, което показва следващи и предишни часове между тези 2 граници. Проблема е там че след като часа мине 23 трябва да стане отново 0. Първият път е правилен, но после часа се увеличава без да се нулира.
Код:
$i = date("G",$query_stat['min_date']);
$y = 0;
while ($y<12) {
if ($i+$y+12*$stat>=24) $z = ($i+$y+12*$stat)-24;
else $z = $i+$y+12*$stat;
echo $z;
$y++;
}
$stat = 0 първоначално в сегашното положение и се увеличава с 1 на всяка страница
$y<12 защото искам да има по 12 часа/резултата на страница.
 
какво точно искаш да получиш?
 
Искам да ми показва часовете след началния час когато стане 23 да следва 0 и така да се повтарят
 
Аз се сещам за нещо такова
$x = 84; // тук изкарваш общите часове
$y = 13; // и тук началния час, примерно в случая 13:00
while ($x/24 > 0) {
for($i = $y;$i < 24;$i++) {
echo $i."<br />";
}
$x = $x - 23;
$y = 0;
}
 
Код:
$start_unixtime=strtotime('2010-04-22 22:00');
for ($n=$start_unixtime; $n<($start_unixtime+12*3600); $n=$n+3600) echo date('H:i',$n)." ";

edit:
смених 'G:i' с 'H:i' за по-пргледно
 
ето ти и вариант в който имаш КРАЙ на периода, който можеш да ползваш за параметър за СТАРТ на селекта в базата за следващия период от 12 часа

Код:
$start="2010-04-22 22:00";
echo 'start->'.$start."<br />";
$start_unixtime=strtotime('2010-04-22 22:00');
for ($n=$start_unixtime; $n<($start_unixtime+12*3600); $n=$n+3600) echo date('H:i',$n)." ";
echo 'end->'.date('Y-m-d H:i',$n)."<br />";
 
Ето ти е по пълно решение на целия проблем, ако съм те разбрал правилно.
Код:
$start_time="2010-04-22 22:00";
$start_unixtime=strtotime($start_time);
$line='';
for ($n=$start_unixtime; $n<($start_unixtime+12*3600); $n=$n+3600) $line.=date('H:i',$n)." ";
echo 'line -> '.$line."<br />\n";
echo 'prev_page_start_time -> '.date('Y-m-d H:i',$n-12*3600*2)."<br />\n";
echo 'current_page_start_time -> '.$start_time."<br />\n";
echo 'next_page_start_time -> '.date('Y-m-d H:i',$n)."<br />\n";
 

Back
Горе