2012-02-12 9 views
2

私はPHPマニュアルページのDatePeriodクラスを理解していたので、時間を保存することを目的としています。私。インターバルの開始を意味するある時点での間隔+オプションの繰り返し。私はすべてを印刷しています次のコードでDatePeriod変数からの間隔を取得する

私は一ヶ月の長さで、今日変数の出発DP $を作成するには、次のコードで

$start = new DateTime(); 
$interval = new DateInterval('P1M'); 
$end = clone $start; 
$end->add($interval);  
$dp = new DatePeriod($start, $interval, $end); 

は(私の例で唯一の原因となるような再発がない)の開始日を期間:

foreach ($dp as $d) 
    var_dump($d->d); 

私の質問はどのように$ dp変数から間隔を取得できますか?

+0

「DatePeriod」は非常に悪いことですか?私は例の 'format'メソッドが文書にありません –

+0

@Pekkaそれはあなたです。 DatePeriodはiteratingするときにDateTimel要素を返すので、あなたが参照しているDateTime :: format()です。 – Gordon

+1

@Gordonああ、私は今見ます!ありがとう。 :) –

答えて

2

DatePeriod does not expose any propertiesが原因です。インターバルが必要な場合は、$interval変数から再利用してください。

+0

DatePeriodは、DatePeriodコンストラクタを呼び出すと自動的に生成されるDateTimeオブジェクトのコレクションではないため、悲しいです。( – Boffin

+0

@Boffinはい、それは実際にはそれです:) – Gordon

+0

@Boffin:それ以上のものが必要なのはなぜですか? ?何を望んでいたのですか?私はそうしようとしたことがないので、可能かどうかは分かりませんが、クラスを拡張してコンストラクタをオーバーライドして間隔を保存し、ゲッターメソッドで公開するようにしてください。しかし、それを拡張することはできないかもしれません。 – FtDRbwLXw6

関連する問題