人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpについて質問です。
例えば、
$from = "2007-10-10";
$to = "2008-03-30";
だったとして、
echo $result;
の結果が array("2007-11","2007-12",2008-01","2008-02","2008-03");
となるようなコードを教えてください。
・どの変数も日付型です。
・概念的に言うと $from <= $result <= $to です。

●質問者: kou32rr
●カテゴリ:インターネット ウェブ制作
✍キーワード:2008-03-30 echo PHP コード 変数
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●80ポイント ベストアンサー

php には日付型という型はないので、文字列から日付情報(mktime等を使用)にするか、

そのまま文字列として処理をするかになります。

http://php.benscom.com/manual/ja/language.types.php

http://php.benscom.com/manual/ja/book.datetime.php


今回のケースでは後者が簡単に思えますので、そのような実装例です。

例では $from < $result <= $to のようになっていますので、コードもそのように

なっています。

<?php
$from = "2007-10-10";
$to = "2008-03-30";

$far = explode( "-", $from );
$tar = explode( "-", $to );

for( $yy = $far[0] ; $yy<=$tar[0] ; $yy++ ) {
$sm = 1;
$em = 12;
 if ( $yy == $far[0] )
 $sm = $far[1] + 1;
 if ( $yy == $tar[0] )
 $em = $tar[1];
 for( $mm = $sm ; $mm<=$em ; $mm++ )
 $result[] = $yy."-".substr("0".$mm, -2);
}
print_r( $result );
?>

2 ● GoldenDawn
●100ポイント
<?php
function f($from, $to) {
 $result = array() ;
 for ($d = strtotime($from);
 $d < strtotime($to);
 $d = strtotime(end($result)."-1 1 month"))
 $result[] = date("Y-m", $d) ;

 array_shift($result) ;
 return $result ;
}

$from = "2007-10-10" ;
$to = "2008-03-30" ;

print_r(f($from, $to)) ;
?>
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ