dポイントプレゼントキャンペーン実施中!

言語:PHP

質問させて頂きます。
現在、日付の一覧を表示したくプログラムを作成しています。


$start_date = "201012";
$end_date = date("Ym");//201205が代入されるとします。

この2010年12月から2012年05月までの日付を月別で
201012
201101
201102
201103
201104
201105
201106
.
.
.
201205

と、上記のような文字列で取得したいと考えているのですが、
どのような方法を行えば良いのでしょうか?

「201012」
このような文字列で取得したいわけは、
SQLにて検索にしようしたいと考えているからです。
「TO_CHAR(created,'yyyymm') = '201012'」


いろいろと考えてはみたのですが、これだという方法が思いつかなかったため、質問をさせて頂きました。
どなたかご存知の方がいらっしゃいましたら、よろしくお願い致します。

また、質問に不備などがあった際はすぐに修正致しますので、ご指摘下さい。

A 回答 (1件)

strtotimeを使う



$start = '201012';
$array = array();
$current = strtotime($start . '01');
while ($current <= time()) {
$array[] = date('Ym', $current);
$current = strtotime('+1 month', $current);
}
print_r($array);


DateTimeを使う

$start = '201012';
$array = array();

$sdate = new DateTime();
$sdate->setDate(substr($start,0,4), substr($start,4,2), 1);
$edate = new DateTime();
$interval = new DateInterval('P1M');

while ($sdate <= $edate) {
$array[] = $sdate->format('Ym');
$sdate->add($interval);
}
print_r($array);
    • good
    • 0
この回答へのお礼

文句の付けようがないくらい完璧な回答でした!

地道にfor文などであれこれやってたのが悲しくなりました・・・。


本当にありがとうございます!

お礼日時:2012/05/21 19:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!