2012-06-14 49 views
0

我的第一個問題是如果這段代碼可以工作嗎?每2周顯示一次不同的日期

第二是有沒有辦法改進它,所以它會每隔2周更改日期,而我不得不做出新的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

_My第一個問題是,如果這個代碼將工作_ - 測試-.- – maialithar

+2

關於第一個問題 - http://writecodeonline.com/php/。關於第二個 - 不知道你想要完成什麼。 – t3hn00b

+0

沒什麼複雜的,我只是想每兩週展示一次不同的日期。 –

回答

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"; 
+0

同意這是整潔。 :) –

+0

這很好。它不適用於考試,而是讓工作更輕鬆。 –

0

糾正我,如果我錯了。你基本上想把這一年分成兩週的時間間隔。每個間隔都由一個日期表示(在您的情況下,日期是兩週期間的結束時間)。

這個,正如你指出的那樣根本不起作用。你將別無選擇,只能寫下整個一年的其他條件。

你可以做的事情就是維護一個$ 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); 

}