2011-01-30 108 views
0

返回数组我需要创建一个项目,一个功能我工作:需要帮助完成PHP函数 - 日期

考虑3个变量:

  1. 开始日期
  2. 阵列天
  3. #日期的返回

返回日期

即/

$start_date = "01-01-2011" 
$days[] = [[Monday],[Wednesday],[Friday]] 
$number_dates = 9 

应返回:

$dates[] = [[03-01-2011],[05-01-2011],[07-01-2011],[10-01-2011],[12-01-2011],[14-01-2011],[17-01-2011],[19-01-2011],[21-01-2011]] 

我怎样才能做到这一点可能是最简单的方式

回答

1
$start_date = "01-01-2011"; 
$days = array('Monday', 'Wednesday', 'Friday'); 
$number_dates = 9; 

$result = getDates($start_date, $days, $number_dates); 

echo "<pre>";echo var_dump($result);echo "</pre>"; 

function getDates($start_date, $days, $number_dates) { 
    $result = array(); 

    $startTime = mktime(0,0,0, (int)substr($start_date,4,2), (int)substr($start_date,0,2), (int)substr($start_date,6,4)); 

    if (count($days) > 0) { 
     $n = 1; 
     $t = $startTime; 
     while ($n <= $number_dates) { 
      $t += 24 * 3600; 
      if (in_array(date('l', $t), $days)) { 
       $result[] = date('d-m-Y', $t); 
       $n++; 
      } 
     } 
    } 

    return $result; 
} 

结果:

<pre>array(9) { 
    [0]=> 
    string(10) "03-01-2011" 
    [1]=> 
    string(10) "05-01-2011" 
    [2]=> 
    string(10) "07-01-2011" 
    [3]=> 
    string(10) "10-01-2011" 
    [4]=> 
    string(10) "12-01-2011" 
    [5]=> 
    string(10) "14-01-2011" 
    [6]=> 
    string(10) "17-01-2011" 
    [7]=> 
    string(10) "19-01-2011" 
    [8]=> 
    string(10) "21-01-2011" 
} 
</pre> 
+0

完美 - 正是因为需要!谢谢 :) – Simon 2011-01-30 12:02:16