0

我的第一个问题是这段代码是否有效?

其次,有没有办法改进它,所以它会每两周更改一次日期,而我必须做出新的 if 语句?如果小于 6 月 20 日回显 6 月 20 日,如果小于 7 月 4 日回显 7 月 4 日,以此类推。

if(date("d")<=20 && date("m")<=6){
    $text = '20 june';
}
else if(date("d")<=4 && date("m")<=7){
    $text = '4 july';
}
4

2 回答 2

2

我的变种。

$StartDate = strtotime('2012-06-06'); //Start date from which we begin count
$CurDate = date("Y-m-d"); //Current date.
$NextDate = date("Y-m-d", strtotime("+2 week", $StartDate)); //Next date = +2 week from start date
while ($CurDate > $NextDate ) { 
  $NextDate = date("Y-m-d", strtotime("+2 week", strtotime($NextDate)));
}
echo date("d F", strtotime($NextDate)), "\n";
于 2012-06-14T10:10:43.837 回答
0

如我错了请纠正我。您基本上想将一年分成 2 周的间隔。每个间隔都由一个日期表示(在您的情况下,日期是 2 周的结束时间)。

正如您所指出的,这根本行不通。您别无选择,只能写下全年的 if else 条件。

相反,您可以做的是维护一个 $date 变量。

//Initialize this part once on the first run of your code.
//Say you want to start on the 1st of June
$pivotDate = "2012-06-01";         

然后,您可以通过一个简单的条件来完成您想要的操作,以在每次代码运行时进行检查:

$diff = abs(strtotime(date(c)) - strtotime($datePivot));
$days= floor($diff/(60*60*24));
if(days>14){
  $pivotDate=date(c);

}
于 2012-06-14T10:08:16.837 回答