在循环中递增日期

时间:2013-06-20 20:09:46

标签: php date while-loop increment

我做了一些研究,但我没有发现任何问题。我尝试在循环中递增日期以测试某些文件是否存在。事实上,我希望每隔七天让一些用户玩。当他们播放文件时,他们的IP和日期创建。所以我们在一个循环中测试一个文件确实存在,每个日期之间的日期。如果它存在,我们返回1,否则我们返回0。

我遇到了一些麻烦,我真的不知道如何使用aloop

在php中增加日期

我尝试了类似的东西

**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;
}

我是php的初学者。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

尝试这些方面的东西。

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

基本上我只是在当前日期添加了86400秒,一天有86400秒,所以我只添加了1天。

答案 1 :(得分:0)

您将需要使用strtotime并继续使用$ date变量:

// 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;

答案 2 :(得分:0)

从UNIX时间戳创建日期并递增它会不会更容易?像这样:

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

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