代码之家  ›  专栏  ›  技术社区  ›  Brian Hicks

使strtotime()仅在将来生成次

  •  0
  • Brian Hicks  · 技术社区  · 14 年前

    我正在尝试编写一个PHP脚本来查找下一次发生的日期(比如5-1)。但是,如果我把它放进 strtotime() 5月2日,它提出了今年的日期。我只想让它总是返回下一个可能的日期。我怎样才能做到这一点?如果有帮助的话,我用的是代码点火器。

    编辑:我想出了一些代码,如果一些卑微的灵魂遇到同样的问题:

    if (strtotime($date) < strtotime("now")) {
        $realseconds = strtotime($date) + 31556926; //add one year in seconds
    } else {
        $realseconds = strtotime($date);
    }
    
    4 回复  |  直到 14 年前
        1
  •  2
  •   SLaks    14 年前

    您可以检查返回的日期是否早于当前时间,如果早于当前时间,则可以添加一年。

    您还可以将明年的某个日期作为第二个参数传递给 strtotime .

        2
  •  1
  •   Alix Axel    14 年前

    是什么 5-1 5-2 ?!

    尝试这样做:

    strtotime('next October');
    
        3
  •  1
  •   Pekka    14 年前

    假设5-2表示2月5日,你可以这样做

    strtotime("february 5 +1 year")
    
        4
  •  0
  •   Quamis    14 年前

    代码:

    $x=strtotime($inputString);
    $YEAR=60*60*24*30*12;
    while($x<$time()) $x+=$YEAR;
    

    基本上,如果strtotime返回的日期是过去的话,它会增加一年。因为我使用了while(),它将永远不会返回过去的某个日期,即使它是这样明确地声明的。