24

日付期間が 1 つの例外を除いてどのように機能するかを理解しています。日付期間から間隔の数を調べる方法はありますか?

たとえば、次のようになります。

// define the period of the range
$period = new DatePeriod($begin, $rangeType, $end);

// iterate through the dates in range
foreach ( $period as $dt ) {
}

これは、上記のコードからやりたいことです。

echo count($period);

foreach基本的に、ループが実行される回数を知りたいです。

4

3 に答える 3

45

iterator_countこれには次の関数を使用できます。

echo(iterator_count($period));
于 2013-01-23T21:50:50.453 に答える
-1
class MyDatePeriod extends DatePeriod
{
    public $dates;

    public function toArray()
    {
        if ($this->dates === null) {
            $this->dates = iterator_to_array($this);
        }

        return $this->dates;
    }
}

$p = new MyDatePeriod(date_create('2008-01-01'),
                      DateInterval::createFromDateString( "+2 days" ),
                      date_create('2008-12-31'));

echo count($p->toArray()) . "\n"; // 183

echo count($p->toArray()) . "\n"; // 183
于 2013-01-23T21:53:52.123 に答える