【问题标题】:incrementing a date in a loop在循环中增加日期
【发布时间】:2013-06-17 20:31:15
【问题描述】:

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

我们将不胜感激。

【问题讨论】:

  • $d + 1 将永远是 $d + 1。试试$d + $i
  • 我的问题可能很愚蠢,但是为什么将这些信息存储在文件中而不是数据库中,这样使用起来会容易得多?再说一遍,这只是一个问题,而不是一个建议。
  • frenus:这完全是题外话,没有建设性。
  • 是的,在文件中,这更容易,因为我无法访问服务器的数据库

标签: php date while-loop increment


【解决方案1】:

尝试这些方法。

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

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

【讨论】:

    【解决方案2】:

    您将需要使用 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;
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2015-06-28
        • 1970-01-01
        • 2022-08-10
        • 2016-03-02
        • 2021-12-12
        • 1970-01-01
        • 2011-03-28
        • 2023-03-25
        • 2017-08-23
        相关资源
        最近更新 更多