2016-04-04 3 views
0

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

$today = date('Y-m-d'); 

    for($i=1; $i<=4; $i++){     
    $repeat = strtotime("+2 day",strtotime($today)); 
    echo $rdate = date('Y-m-d',$repeat); 
    } 

Я хочу привести, как если бы сегодня 2016-04-04, чем, 2016-04-06, 2016-04-08, 2016-04-10, 2016-04- 12.

Фактически я хочу сделать напоминание, когда пользователь вводит напоминание. позволяет пользователю добавлять напоминание сегодня и хочет повторить его 5 раз после 2 дней, 3 дня или того, что он хочет, в следующий день. чем то, как я повторяю дату для цикла.

ответ

1

Попробуйте это:

<?php 

$today = date('Y-m-d'); 

for($i=1; $i<=4; $i++) 
{ 
    $repeat = strtotime("+2 day",strtotime($today)); 
    $today = date('Y-m-d',$repeat); 
    echo $today; 
} 

Выход:

2016-04-06 
2016-04-08 
2016-04-10 
2016-04-12 
+1

Нет необходимости в дополнительной переменной в '$ today' :) – Jer

+1

Конечно, мой плохой! :) Благодаря! – aslawin

+0

Добро пожаловать :-)! @aslawin – Jer

0

Вы можете попробовать это:

$today = date('Y-m-d'); 
for($i=1; $i<=8; $i++){ 
    if($i%2 == 0){ 
     $repeat = strtotime("+$i day",strtotime($today)); 
     echo $rdate = date('Y-m-d',$repeat); 
    } 
} 

Результат:

2016-04-06 
2016-04-08 
2016-04-10 
2016-04-12 

В этом примере, вы можете использовать $i%2 == 0 с limit <= 8

+0

@ C0dekid.php: спасибо друг. – devpro

+0

Добро пожаловать :) – Jer

+1

Это работает спасибо. – user3909841

0

Используйте для петли с основанием 2, а затем непосредственно выход даты:

for($i=2; $i<9; $i=$i+2) 
{ 
    echo date('Y-m-d', strtotime("+ $i days")) . PHP_EOL; 
} 

Результат:

2016-04-06 
2016-04-08 
2016-04-10 
2016-04-12 
0

на самом деле я хочу сделать дату напоминания, когда пользователь вводит напоминание. позволяет пользователю добавить напоминание сегодня и хочет повторить его 5 раз после 2 дня, 3 дня или что он хочет, в следующий день. чем как i повторить дату с циклом for.

Я помогу с вышесказанным. Прежде всего, я просто скажу, что у меня есть огромное личное предпочтение по отношению к объекту DateTime, просто используя date. Это более гибко и, на мой взгляд, намного более читаемо, поэтому при работе с датами я всегда предлагаю использовать это более date()

Так вот некоторые Код:

$date = new DateTime(); // Pretend this is what the User entered. We got it via $_POST or something. 
$interval = 2; // Repeat x times at y day intervals. (Not including the initial) 
$repeatAmount = 2; // Repeat the reminder x times 

for ($i = 0; $i <= $repeatAmount; ++$i) { 
    echo $date->format('d/m/Y');  
    $date->modify('+'. $interval .' day'); 
} 

$date = new DateTime() Представьте себе это дата, введенная пользователем, это наша отправная точка, наше первое напоминание в это время.

$interval и $repeatAmount являются интервал в днях, то я хочу, чтобы это каждые 2 дня и количество раз вы хотите, чтобы повторить, в нашем примере 2.

for ($i = 0; $i <= $repeatAmount; ++$i) { Мы хотим, чтобы в цикле столько раз, сколько пользователь говорит, что они хотят повторить.Маленькое примечание ++$i имеет тенденцию быть очень незначительное повышение производительности по сравнению с $i++ в некоторых сценариях, так что, как правило, лучше по умолчанию, что, если вы специально не нужно использовать $i++

echo $date->format('d/m/Y'); Просто распечатайте дату, я дам вам обращаться логика напоминания.

$date->modify('+' . $interval . ' day'); Увеличьте объект dateTime на интервал, который запросил пользователь, в нашем случае приращение на 2 дня.

Все вопросы дайте мне знать.

+0

спасибо, я постараюсь! – user3909841

Смежные вопросы