開始日と終了日の間に日付一覧(日付リスト)をPHPで取得する方法
開始日として2011/01/29があり、終了日が2011/02/02として、
その間の日付
2011/01/29
2011/01/30
2011/01/31
2011/02/01
2011/02/02
というような一覧を取得したい場合のコード。
Zend_Dateを使ってます。
$startyear = “2011";
$startmonth = “01";
$startday = “29";
$endyear = “2011";
$endmonth = “02";
$endday = “02";
$startdate = “20110129";
$enddate = “20110202";
$now = new Zend_Date();
//開始日と終了日が同じ日だった場合を考慮したコード。もっといい方法あるかもしれないけど。
$exist[$startdate] = 1;
$exist[$enddate] = 1;
while( strcmp($startdate,$enddate)!=0 )
{
$exist[$startdate] = 1; //存在OKということで記録
$now->set($startday.$startmonth.$startyear", Zend_Date::DATES);
$now->add( 1, Zend_Date::DAY );
$date = $now->toArray();
$startyear = $date[“year"];
$startmonth = sprintf(“%02d",$date[“month"]);
$startday = sprintf(“%02d",$date[“day"]);
$startdate = $startyear.$startmonth.$startday;
}
これで、
$existという連想配列に
$exist[“20110129"] = 1;
$exist[“20110130"] = 1;
$exist[“20110131"] = 1;
$exist[“20110201"] = 1;
$exist[“20110202"] = 1;
というように入ってくる。
ディスカッション
コメント一覧
まだ、コメントがありません