我的第一个问题是这段代码是否有效?
其次,有没有办法改进它,所以它会每两周更改一次日期,而我必须做出新的 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';
}
我的变种。
$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";
如我错了请纠正我。您基本上想将一年分成 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);
}