-1

我正在尝试使用我在 SO 上找到的日期函数来创建两个给定日期之间的日期数组。看起来像:

function createDateRangeArray($strDateFrom,$strDateTo) {
  // takes two dates formatted as YYYY-MM-DD and creates an
  // inclusive array of the dates between the from and to dates.

  // could test validity of dates here but I'm already doing
  // that in the main script

  $aryRange=array();

  $iDateFrom=mktime(1,0,0,substr($strDateFrom,5,2),     substr($strDateFrom,8,2),substr($strDateFrom,0,4));
  $iDateTo=mktime(1,0,0,substr($strDateTo,5,2),     substr($strDateTo,8,2),substr($strDateTo,0,4));

  if ($iDateTo>=$iDateFrom) {
    array_push($aryRange,date('Y-m-d',$iDateFrom)); // first entry

    while ($iDateFrom<$iDateTo) {
      $iDateFrom+=86400; // add 24 hours
      array_push($aryRange,date('Y-m-d',$iDateFrom));
    }
  }
  return $aryRange;
}
$print_r($aryRange);

由于某种原因,它不会打印数组。我知道我的$strDateFrom价值观$strDateTo很好,因为我可以在函数之前和之后回显它们。任何帮助深表感谢!

4

1 回答 1

1

你永远不会分配$aryRange给任何东西。函数中具有此名称的变量是本地的,与 print 语句中的不同。你永远不会调用函数,所以永远不要从中获取价值。

尝试这个:

$strDateFrom = '2013-01-01';
$strDateTo = '2013-01-11';
$aryRange = createDateRangeArray($strDateFrom,$strDateTo);
print_r($aryRange);
于 2013-05-29T23:58:05.550 回答