2013-06-20 5 views
1

Я провел некоторое повторное исследование, но я не нашел никаких проблем. Я пытаюсь увеличить число в цикле, чтобы проверить, существуют ли некоторые файлы. На самом деле я хотел бы, чтобы некоторые пользователи играли каждые семь дней. Когда они играют, файл создается с их IP-адресом и с датой. Поэтому мы тестируем в цикле, если файл существует с каждой датой между этими днями. Если она существует, мы возвращаем 1 еще мы возвращаем 0.приращение даты в цикле

я встретил некоторые проблемы я не знаю, как прирастить дату в PHP с помощью aloop

Я пытался что-то вроде этого

**function afficheTirageAusort() { 

    //Initialisation des variables 

    $ip = $_SERVER["REMOTE_ADDR"]; 
    $date_str = date('d-m-y'); 
    $rep = "ip/"; 
    if (!file_exists($rep)) { 
     fopen($rep, "w+"); 
    } 
    $fichier = $ip . $date_str . '.txt'; 
    $periode = 7; 
    $i = 0; 
    $date_jeu = 0; 

    //Test de l\'existence du fichier 
    while ($i <= $periode) { 

     list($d,$m,$Y)= explode('-',$date_str); 
     $date2 = Date('d-m-Y', mktime(0, 0, 0, $m, $d + 1, $Y)); 
     $date = Date($date2, mktime(0, 0, 0, $m, $d + 1, $Y)); 
     var_dump($date); 
     if (file_exists($rep . $ip . $date . '.txt')) { 
      $var = 0; 
     } else { 
      fopen($rep . $ip . $date . '.txt', 'w+'); 
      $var = 1; 
      //break 1; 
     } 
       $i++; 
    }; 
    return $var; 
} 

I 'новичок в php.

anykind of help будет очень благодарен.

+1

'$ d + 1 'всегда будет' $ d + 1'. Попробуйте '$ d + $ i'. –

+0

Мой вопрос может быть глупым, но почему вы храните эту информацию в файле вместо базы данных, с которой было бы намного проще работать? Это снова вопрос, а не предложение. – frenus

+0

frenus: Это совершенно не по теме и неконструктивно. – pzkpfw

ответ

0

Вы хотите использовать StrToTime и продолжать использовать $ Дата переменные:

// Setup the dates 
list($d, $m, $Y) = explode('-', $date_str); 
$date2 = Date('d-m-Y', mktime(0, 0, 0, $m, $d, $Y)); 
$date = Date($date2, mktime(0, 0, 0, $m, $d, $Y)); 

//Test de l\'existence du fichier 
while ($i <= $periode) { 
    $date = strtotime("+1 day", strtotime($date)); // 1 day past previous date 
    $date2 = strtotime("+1 day", strtotime($date)); // 1 Day past the $date var 
    echo date("Y-m-d", $date); 

    var_dump($date); 
    if (file_exists($rep . $ip . $date . '.txt')) { 
     $var = 0; 
    } else { 
     fopen($rep . $ip . $date . '.txt', 'w+'); 
     $var = 1; 
     //break 1; 
    } 
    $i++; 
}; 
return $var; 
0

попробуйте что-нибудь в этом направлении.

$todaysdate = date("Y-m-d H:i:s"); 
$tomorrowsdate = date("Y-m-d H:i:s", date()+86400); 

по существу я только добавил 86400 до текущей даты, и есть 86400 секунд в день, так что я просто добавил 1 день.

0

Не было бы проще для вас, чтобы создать дату из UNIX Timestamp и увеличить его? Как это:

$time = time() + (3600 * 24);

$date = date('d-m-Y', $time);