-1

SOで見つけた日付関数を使用して、指定された2つの日付の間から日付の配列を作成しようとしています。次のようになります。

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 に答える