• ベストアンサー

日付を付けたファイルを作成したい

ファイル名に日付を付加したいのですが、うまく出来ませんでした。 $d = getdate(); $fp_out = fopen('XXX_$d["year"]$d["mon"]$d["mday"]', 'w'); とか、 $d = getdate(); $fp_out = fopen('XXX_$d'.["year"].$d["mon"].$d["mday"], 'w'); とかやってみましたが駄目でした。 どうすれば出来るのでしょうか?

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

日付の部分を "XXX_".$d['year'].$d['mon'].$d['mday'] にすれば良いと思いますが、 それより "XXX_".date("Ymd"); の方が簡単です。

mac_mini
質問者

お礼

出来ました。 ありがとうございます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

#1さんのやり方が正しいと思います。 念のため補足ですが 配列をコーテーション内で使うに{}をつかいます。 ×'XXX_$d["year"]$d["mon"]$d["mday"]' ○'XXX_{$d[year]}{$d[mon]}{$d[mday]}'

mac_mini
質問者

お礼

非常に参考になりました。

関連するQ&A

  • ファイルの日付取得

    お世話になります。 Perl/CGIで悩んでいるところがあり質問させていただきに参りました。 サーバ上の、とあるフォルダに下にある.htmlファイルの一覧を表示・リンクし、またその各ファイルの最終更新日付を表示したいと思っています。 そこで下記の様な、ソースを書きました。 opendir (DIR,$dir) ; @files = grep { /\.html$/ } readdir DIR; close DIR; foreach $filename (@files){ $modtime = (stat($filename))[9] ; # ($sec, $min, $hour, $mday, $mon, $year) = localtime($modtime); $year = $year + 1900; $mon= $mon + 1; print "<a href=html/$filename>$filename</a>[作成日:$year 年$mon月$mday日$hour時$min分$sec秒]<P>\n"; } これを実行すると、複数ファイルのうち、1つのファイルだけが、なぜか正常に表示され、あとのファイルはすべて 「1970 年1月1日9時0分0秒」となってしまいます。 これはどうしてなんでしょうか?? 分かる方がいらっしゃいましたら、ご教授の程、よろしくお願いします。 環境:Windows 2000 Server,IIS,ActivePerl

    • ベストアンサー
    • Perl
  • 日付求め

    お世話になります。 早速ですが、perlで以下のように 現在時刻を求め表示するロジックがあります。 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time); $year=$year + 1900; $mon =$mon + 1; $date81 = "$year年$mon月$mday日($days[$wday])"; $date82 = "$hour時$min分$sec秒"; この時、 例えば今年末であれば、 2009年1月1日0時と表示されると思います。 これを2008年12月31日24時と表示したいのですが、 何か妙案はあるでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • getdate関数の返り値を0パディング

    はじめまして。 getdateで当日の日付を取得したいのですが、 【ソース】 $today = getdate(); print("$today[year]$today[mon]$today[mday]"); 上記のソースですと、2008年12月31日の場合は20081231と表示できますが、 2009年1月2日ですと200912となってしまいます。 月と日が1桁の場合、0でアタマを埋めたいのですが(20090102と表示したい) よい解決策が思いつきませんでした。 どなたかご教示頂けると助かります。

    • ベストアンサー
    • PHP
  • getdate 桁統一方法

    こんにちは、 タイムスタンプをgetdateで変換して表示しているのですが 日付によっては2013/1/1と表示されるので、これを 2013/01/01と4桁、2桁、2桁に統一したいと思うのですが どのようにすればよいでしょうか? $time = getdate($rows['1382296955']); $modified_time = $time['year'].'/'.$time['mon'].'/'.$time['mday'];

    • ベストアンサー
    • PHP
  • 同じ日付が取得できない

    こんにちは、 $time = getdate($rows['max(t2.modified_time)']); でdbからデータを抜き出し、$time['mday']の値を使用しようとしているのですが 同じデータを使用しているつもりなのですが、 片方のロジックは、15で、もう片方は16となり $time['mday']の値が一致しません。 どのへんに問題がありますでしょうか? $timeの中身をそれぞれのロジックで出力したものになります。 1358263864が同じなら同じデータだとおもっていたのですが。 Array ( [seconds] => 4 [minutes] => 31 [hours] => 16 [mday] => 15 [wday] => 2 [mon] => 1 [year] => 2013 [yday] => 14 [weekday] => Tuesday [month] => January [0] => 1358263864 ) Array ( [seconds] => 4 [minutes] => 31 [hours] => 0 [mday] => 16 [wday] => 3 [mon] => 1 [year] => 2013 [yday] => 15 [weekday] => Wednesday [month] => January [0] => 1358263864 )

    • ベストアンサー
    • PHP
  • 日付取得、計算及び表示コードが動作しません。

    日付取得、計算及び表示コードが動作しません。 下記のコードのどこが間違っているのか、どなたかお分かりですか? このコードでは、今日の日付をサーバから取得し、それから10日後の日付を計算して表示したいです。 $currentdate = .getdate(); $yyyy = $currentdate["year"]; $mm = $currentdate["mon"]; $dd = $currentdate["mday"]; $int_day = 10; $duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); echo "$duedate" また、上記のコードが動作するようになったとして、表示される日付は「2008/06/10」のようになるかと思いますが、これを「2008年06月10日」のように表示させる方法をご存知でしょうか? >$duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); 上記コードを下記のように変更してもだめです。 >$duedate = .date("y年m月d日", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); よろしくお願いします。

    • ベストアンサー
    • PHP
  • Perlでの Timeの足し算

    時間の足し算をやりたい。訳あってライブラリが使えません。 方法は無いでしょうか? 仮にライブラリが使えるなら、下記のようでうまく行っています。 --------------------------------------------------- use Time::Local; $year=2008; $mon =10; $mday=24; $hours = 23; $min = 0; $sec = 0; $time = timelocal($sec, $min, $hours, $mday, $mon - 1, $year); $a1=($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time ); $mytimeORG= sprintf("%04d/%02d/%02d %2d:%2d", $year + 1900, $mon +1, $mday,$hour,$min); print "$mytimeORG\n"; ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time + 32400); #9H加算 $mytime9H= sprintf("%04d/%02d/%02d %02d:%02d", $year + 1900, $mon +1, $mday,$hour,$min); print "$mytime9H\n"; ---------------------------------------------

    • ベストアンサー
    • Perl
  • プルダウンからの日付取得処理

    現在、PHP+SQLiteでWEBページを作成しております。 (初心者です。) フォームに日付をプルダウンで選択出来るように、 $utime = time()+$jisa*3600; $today = getdate($utime); //年のセレクトボックス(±2年) echo "<select name=year>\n"; for ($y=$today[year]+2; $y>=$today[year]-2; $y--) { $sel = ($y == $today[year]) ? " selected" : ""; echo "<option value=\"$y\"$sel>$y</option>\n"; } echo "</select>/\n"; //月のセレクトボックス(12-1月) echo "<select name=mon>\n"; for ($m=12; $m>=1; $m--) { $sel = ($m == $today[mon]) ? " selected" : ""; echo "<option value=\"$m\"$sel>$m</option>\n"; } echo "</select>/\n"; //日のセレクトボックス(31-1日) echo "<select name=day>\n"; for ($d=31; $d>=1; $d--) { $sel = ($d == $today[mday]) ? " selected" : ""; echo "<option value=\"$d\"$sel>$d</option>\n"; } echo "</select>\n"; というコードを記述しております(これはネットを参考にしました)。 これでプルダウンの表示自体は出来たのですが、実際にここから値を取得するにはどうすれば良いかが分かりません・・・。 ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 設定日から指定日数後の日付の取得

    全く初心者の質問ですみません。 設定日から指定日数後の日付を取得したいと思っています。 echo $date // 正しい設定日がY-m-dで表示されます date ("Y-m-d", mktime (0,0,0,date('m',$date),date('d',$date) + $add_date,date('Y',$date))); で取得できると思ったのですが、常に1970-01-01が返されます。 先ほどecho $dateで設定した日付が表示されるにもかかわらず、 print_r(getdate($add_date)); とすると [seconds] => 31 [minutes] => 33 [hours] => 9 [mday] => 1 [wday] => 4 [mon] => 1 [year] => 1970 [yday] => 0 [weekday] => Thursday [month] => January [0] => 2011 と1970-01-01が返されます。 何故でしょうか?

    • ベストアンサー
    • PHP
  • 日付の計算に関して

    日付の計算に関して PHPを用いて、ある日から月末までの日数を計算したいと考えていますが、 いろいろ調べながらたどり着いた方法で記述しても、上手く動作しません。。。 何が原因なのでしょうか。。。 《記述内容》 //現在日付を取得 $systemDate = getDate(); $sysYear = $systemDate[year]; $sysMon = $systemDate[mon]; $sysDay = $systemDate[mday]; //今月の日付数 $lastDay = date("Ymd", mktime(0, 0, 0, $sysMon+1, 0, $sysYear)); $sql_date1 = '20101010'; $sql_date2 = $lastDay; $result = strtotime( $sql_date2); - strtotime( $sql_date1); $result = intval( $result / ( 24 * 60 * 60))+1; 結果として、~日というような日数を求める為には何が不足しているのでしょうか? 教えて頂きたいと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう