- ベストアンサー
年月日の取得
現在ログをダウンロードするプログラムを作成しています。 ログは年月日の表示があり、例えば、20041001.log というような形です。 画面で取得した年月日を入れます。 2004 年 10 月 1 日 2005 年 1 月 31日 といように、好きなようにログをとるようにしたいのですが、 ログファイル名を取得するのに、手間取っています。 ログは上記のように年月日.logといような固定の名前です。 実際に取得したいファイル名は 20041001.log 20041002.log 20041003.log ・ ・ ・ 20050130.log 20050131.log ファイル名は配列に格納するつもりです。 年数が変わったときの対応が少し難しく、何かよいアドバイスをいただければと思います。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
タイムスタンプにして、 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(時間) }
その他の回答 (3)
- moon_night
- ベストアンサー率32% (598/1831)
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日後までできます。
お礼
ありがとうございます。 いろいろのやり方がありますね。
- shu_a
- ベストアンサー率87% (14/16)
以下は、 $log[$i]!="20050131" でした。すみません。
- shu_a
- ベストアンサー率87% (14/16)
たぶん以下のようなことをやりたいと思ってるのかと・・・。 mktime を使ってはどうでしょうか。 実際できるかどうかはわかりません。(^^;) $i = 1; do { $stamp = mktime (0,0,0,10,$i,2004); $log[$i] = gmdate("Ymd",$stamp); $i++; }while($log[$i]=="20050131");
お礼
ありがとうございます。 mktime関数ですね。初めて知りました。
お礼
ありがとうございます。 参考にさせていただきます。