как сделать цикл меду двумя датами со счетчиком цикла 15 мин или 1 час или 2 часа

Serg_UA

Новичок
как сделать цикл меду двумя датами со счетчиком цикла 15 мин или 1 час или 2 часа

пример

$select1=mysql_query("SELECT min(close_time) vremq1 FROM closed_transactions where type!='balance' and account=25112 ");
$myrowposlper1 = mysql_fetch_array($select1, MYSQL_BOTH);
$select2=mysql_query("SELECT max(close_time) vremq2 FROM closed_transactions where type!='balance' and account=25112 ");
$myrowposlper2 = mysql_fetch_array($select2, MYSQL_BOTH);

for ($i= $myrowposlper1[0]; $i <= $myrowposlper2[0]; ? что писать ) {
echo $i;
}


в данном случае
2008-05-26 06:06:00 - $myrowposlper1[0]
2008-07-09 20:53:00 - $myrowposlper2[0]
 

Bitterman

Новичок
dimagolov
можно и мусклем, просто я предпочитаю преобразования делать в пхп, а через мускул только вытаскивать данные. Хотя понятно, что преобразование даты не настолько сложная операция и ее легко можно сделать и в запросе.
Ну и кроме того, вопрос был задан сразу после упоминания о цикле, поэтому я ответил на автомате )))
 

Serg_UA

Новичок
Автор оригинала: Bitterman
Serg_UA

На какой вопрос? Про время тебе уже ответили.
ЧТО писать в этом цикле ?

for ($i= $myrowposlper1[0]; $i <= $myrowposlper2[0]; ? что писать ) {
echo $i;
}

в данном случае
2008-05-26 06:06:00 - $myrowposlper1[0]
2008-07-09 20:53:00 - $myrowposlper2[0]

1 $i= $myrowposlper1[0] - так пойдет ?
2 и что писать в счетчике цикла ??? (надо 15 минут !!!)
 

est-in

Новичок
Вытаскивай из БД unix timestamp

потом $time_from_db_a + $inc < $time_from_db_b

$inc = 15 * 60 - 15 минут
 

Valenok

Новичок
Там нужно написать
15 мин или 1 час или 2 часа

Как перевести минуты в секунды тебе уже написали.
Часы в минуты переводятся точно также.

а как оперировать со временем ?
strtotime
 

dimagolov

Новичок
Bitterman, тут надо смотреть как дата в базе храниться. если в timestamp, то нефиг ее конвертить в дату мусклем, а потом опять в timestamp пхп-ой.
просто timestamp не хранит в общем случае даты ДО 1970 и если этого не нужно, то он обычно предпочтительней.
 

Serg_UA

Новичок
Так ?

for ($i = strtotime $myrowposlper1[0]); $i <= strtotime $myrowposlper2[0]); strtotime($i."+ 15 min")) {

echo $i;
}

У меня насчет strtotime($i."+ 15 min") БОЛЬШИЕ сомнения ?
 

Serg_UA

Новичок
Автор оригинала: Bitterman
Serg_UA

И в чем они заключаются?
strtotime
P.S. Ты до этого когда-нибудь на чем-нибудь писал?
Начинал еще с PL/1 во времена АСУП . Слышал о таком ?

$dat1= strtotime($myrowposlper1[0]);
$dat2= strtotime($myrowposlper2[0]);

for ($i = $dat1; $i <= $dat2; $i++ ) {

echo date ("Y-m-d H:i:s",$i);
echo '<br>';
}

Так работает - прибавляет 1 секунду

А так - нет


for ($i = $dat1; $i <= $dat2; $i+1 ) {

echo date ("Y-m-d H:i:s",$i);
echo '<br>';
}

Упорно показывает $dat1.

Почему ????
 
Сверху