2010-08-01 208 views
1

任何人都可以想出一個更好的方式來寫出這個循環,並得到相同的結果?根據今天的日期PHP的日期範圍

$today = date('l'); 

    if($today == 'Wednesday'){ 
     $min = date('l-m-d-y'); 
     $max = date('l-m-d-y', strtotime('+4 days')); 
    }else if($today == 'Thursday'){ 
     $min = date('l-m-d-y', strtotime('-1 days')); 
     $max = date('l-m-d-y', strtotime('+3 days')); 
    }else if($today == 'Friday'){ 
     $min = date('l-m-d-y', strtotime('-2 days')); 
     $max = date('l-m-d-y', strtotime('+2 days')); 
    }else if($today == 'Saturday'){ 
     $min = date('l-m-d-y', strtotime('-2 days')); 
     $max = date('l-m-d-y', strtotime('+1 days')); 
    }else if($today == 'Sunday'){ 
     $min = date('l-m-d-y', strtotime('-3 days')); 
     $max = date('l-m-d-y'); 
    } 

    echo $min . ' - ' . $max; 
+0

加/減天的目標是什麼? – 2010-08-01 00:26:10

+0

@我將根據與該日期相關的文件創建目錄...因此,例如08_01_2010將包含file1.html和file2.html,而08_02_2010將包含file3.html和file4.html ... I需要允許的日期在特定的日期範圍內。所以,如果是星期三,我需要搜索星期天以前的文件夾,如果是星期五,我需要搜索BACK to Wednesday和UP to Sunday etc ... – 2010-08-01 00:29:00

+0

Artefacto看起來已經爲此製作了一個神奇的解決方案。 :)正在考慮沿着這些相同的路線 - 計算需要後退/前進的天數,並對其進行排序。 – 2010-08-01 00:32:41

回答

3

我假設你想在週六的分鐘-3週日-4。無論如何,這是這個想法:

$weekday = date("w"); 
if ($weekday == 0) 
    $weekday = 7; 

if ($weekday >= 3) { 
    $min = date('l-m-d-y', 
     strtotime(($weekday==3?"+0":(3-$weekday))." days"); 
    $max = date('l-m-d-y', 
     strtotime("+".(7-$weekday)." days"); 
} 
+0

ahhh,喜歡它。非常好。 – 2010-08-01 00:34:35

1

可以將其存儲在數組中,其中日期作爲鍵和+/- x天作爲值。

+0

非常好的解決方案:) – 2010-08-01 00:35:03