Как создать массив с датами с интревалом в 1 день?

Astral Man

We Will Rock You
Как создать массив с датами с интревалом в 1 день?

Нужно создать массив с unix датами с интервалом с 1 день (86400 сек)
есть начальная и конечная даты.

Мужики помогите, нужно по зарез, спасибо!
 

Dallas

Guest
Кажется, это ты задавал вопрос насчет просмотра свободного интервала массива? У тебя проблемы с рекурсией?
А вообще, очень похоже на то, что ты мудрствуеш. Может опишешь задачу в общем?
 

Фанат

oncle terrible
Команда форума
так, все-таки, с интервалом в 1 день ИЛИ интервалом в 86400 сек?
если второе, то это банальный цикл for
Если первое, то mktime в цикле
 

Fedor33

Guest
for($i=0; $i<5; $i++)
{
$massiv[] = mktime(0,0,0, $month, $startday+$i, $year);
}
 

Astral Man

We Will Rock You
Автор оригинала: Фанат
так, все-таки, с интервалом в 1 день ИЛИ интервалом в 86400 сек?
если второе, то это банальный цикл for
Если первое, то mktime в цикле
С интервалом в 86400сек, а как этот цикл сделать?

PHP:
for ($i = 1073250000; $i <= 1104440400 ; $i + 86400) {
    print $i;
}
не работает
 

Фанат

oncle terrible
Команда форума
а что должна означать строчка $i + 86400?

-~{}~ 31.08.04 13:46:

только учти, что если тебе нужен именно интервал в один день, то тебе это не подойдет.
хрестоматийный случай.
 

Astral Man

We Will Rock You
Автор оригинала: Фанат
а что должна означать строчка $i + 86400?
По идее увеличить на 86400
и уже догадываюсь что это не так

Время у меня в unix формате, мне нужны интервалы в один день начиная с какого-то и занакчивая каим-то....
 

Фанат

oncle terrible
Команда форума
ты $i этим кодом не увеличиваешь.
напиши просто две строчки
$i=0;
$i + 1;
echo $i;
что тебе выведет?а что ты в своем слкчае ожидаешь?

Время у меня в unix формате, мне нужны интервалы в один день начиная с какого-то и занакчивая каим-то....
используй mktime в цикле, прибавляя по одному дню к полю дня.
вечером приведу код, который выводит неправильные даты, если использовать просто 86400
 

Astral Man

We Will Rock You
Автор оригинала: Фанат
используй mktime в цикле, прибавляя по одному дню к полю дня.
вечером приведу код, который выводит неправильные даты, если использовать просто 86400
Фанат, не мог бы ты привести пример как создать массив с датами:
1073250000
1073336400
1073422800
1073509200
...
1104440400

по поводу не правильных дат, можно отключить как я понял летнее время. mktime(0,0,0,1,1,2004,0); или нет?
 

Фанат

oncle terrible
Команда форума
ничего отключать НЕ НАДО.
НАОБОРОТ, отключив, ты и получишь косяк!

пример тебе, кстати, уже привел федор
правда, для количества дней, а не для конечной даты.
тебе же надо просто по условию выходить из цикла.
 

Astral Man

We Will Rock You
Всем спасибо за помощь.
Решил:
Есть начальная и конечная дата, вычесляем кол-во дней и делаем цикл
PHP:
$num_day = round(($end_date - $begin_date_doc)/86400);
list($mm,$dd,$yyyy) = explode(".",date("m.d.Y",$begin_date_doc));

for($i = 0; $i<=$num_day; $i++) {
    $_DATE[] = mktime(0,0,0, $mm, $dd+$i, $yyyy);
}
Вроде правильно.
 
Сверху