2010-08-01 127 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