• ベストアンサー

年月日の取得

現在ログをダウンロードするプログラムを作成しています。 ログは年月日の表示があり、例えば、20041001.log というような形です。 画面で取得した年月日を入れます。 2004 年 10 月 1 日 2005 年 1 月 31日 といように、好きなようにログをとるようにしたいのですが、 ログファイル名を取得するのに、手間取っています。 ログは上記のように年月日.logといような固定の名前です。 実際に取得したいファイル名は 20041001.log 20041002.log 20041003.log   ・   ・   ・ 20050130.log 20050131.log ファイル名は配列に格納するつもりです。 年数が変わったときの対応が少し難しく、何かよいアドバイスをいただければと思います。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

タイムスタンプにして、 1日の秒数を加算してけばよいかと。 $d = mktime(0, 0, 0, 10, 1, 2004); while($d <= mktime(0, 0, 0, 1, 31, 2005)){  print date("Ymd",$d)."<br>";  $d += 60 * 60 * 24;  //60(秒) * 60(分) * 24(時間) }

aiurai54
質問者

お礼

ありがとうございます。 参考にさせていただきます。

その他の回答 (3)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.4

data("U")をうまく使いましょう。 $data = "20041001"; $U = mktime(0,0,0,substr($data, 4, 2),substr($data, 6, 2),substr($data, 0, 4)); として $log = data("Ymd",$U) .".log"; とすれば 20041001.log が入ります。 for ($i=0;$i<=100;$i++) { print data("Ymd",$U+60*60*24*$i) .".log"; } とすれば 100日後までできます。

参考URL:
http://search.net-newbie.com/php/function.date.html
aiurai54
質問者

お礼

ありがとうございます。 いろいろのやり方がありますね。

  • shu_a
  • ベストアンサー率87% (14/16)
回答No.3

以下は、 $log[$i]!="20050131" でした。すみません。

  • shu_a
  • ベストアンサー率87% (14/16)
回答No.2

たぶん以下のようなことをやりたいと思ってるのかと・・・。 mktime を使ってはどうでしょうか。 実際できるかどうかはわかりません。(^^;) $i = 1; do { $stamp = mktime (0,0,0,10,$i,2004); $log[$i] = gmdate("Ymd",$stamp); $i++; }while($log[$i]=="20050131");

参考URL:
http://php.s3.to/man/function.mktime.html
aiurai54
質問者

お礼

ありがとうございます。 mktime関数ですね。初めて知りました。

関連するQ&A