-1

我需要一种算法来计算一周中两天之间的日期!例如我有

开始日期:23-04-2012 和结束日期:27-04-2012

现在我想收到一个具有这种结构的数组:

$arr = array(
  '23-04-2012',
  '24-04-2012',
  '25-04-2012',
  '26-04-2012', 
  '27-04-2012', 
  '28-04-2012'
);

谢谢!

4

3 回答 3

1

您可以使用 DateTime::Diff 函数(此处的文档)。

  1. 将您的两个日期传递给函数。
  2. 获取作为天数的返回值。
  3. 向其中添加一个(以便包括开始日期和结束日期)。
  4. 组成一个for(int i = 0; i <= $days_difference; i++)循环。
  5. 每次将日期增加一天并将其添加到数组中。
于 2012-04-27T08:19:07.423 回答
0
$start = '23-04-2012';
$end   = '27-04-2012';

$startTs = strtotime("$start 00:00:00");
$endTs   = strtotime("$end 00:00:00");

$days = array();
$day  = $startTs;

$i = 0;

while ($day <= $endTs) {
    $days[] = date('d-m-Y', $day);
    $i++;
    $day = mktime(0, 0, 0, date('n', $startTs), date('j', $startTs) + $i, date('Y', $startTs));
}

var_dump($days);
于 2012-04-27T08:46:30.023 回答
-1

这可以帮助你。

$startdate=explode("-","23-04-2012");
$enddate=explode("-","27-04-2012");
$i;
$arr=array();
for($i=$startdate[0];$i<=$endate[0];$i++)
{
     $dd=$i.'-'.$startdate[1].'-'.$startdate[2];
     array_push($arr,$dd);
}
print_r($arr);
于 2012-04-27T08:18:42.610 回答