Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 递增循环中的日期_Php_Date_While Loop_Increment - Fatal编程技术网

Php 递增循环中的日期

Php 递增循环中的日期,php,date,while-loop,increment,Php,Date,While Loop,Increment,我做了一些研究,但没有发现任何问题。我尝试在循环中增加一个日期,以测试是否存在某些文件。事实上,我想让一些用户每七天玩一次。当他们播放时,文件是用他们的IP和日期创建的。因此,我们在一个循环中测试,在这两天之间的每个日期是否存在一个文件。如果存在,则返回1,否则返回0 我遇到了一些麻烦,我真的不知道如何使用aloop在php中增加日期 我试过类似的东西 **function afficheTirageAusort() { //Initialisation des variables

我做了一些研究,但没有发现任何问题。我尝试在循环中增加一个日期,以测试是否存在某些文件。事实上,我想让一些用户每七天玩一次。当他们播放时,文件是用他们的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的初学者


任何形式的帮助都将不胜感激。

尝试以下方法

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

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

您需要使用strotime并继续使用$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;

从UNIX时间戳中创建日期并增加它不是更容易吗?像这样:

$time=time+3600*24


$date=日期'd-m-Y',$time

$d+1将始终是$d+1。试试$d+$i。我的问题可能很愚蠢,但为什么要将这些信息存储在一个文件中,而不是一个更容易使用的数据库中?再说一次,这只是一个问题,不是一个建议。弗伦纳斯:这完全是离题的,没有建设性的。是的,在一个文件中,这很容易,因为我没有访问数据库的网站,只是服务器