• ベストアンサー

getdate 桁統一方法

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

  • PHP
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>$time = getdate($rows['1382296955']); >$modified_time = $time['year'].'/'.$time['mon'].'/'.$time['mday']; $rows['1382296955']がタイムスタンプならgetdateなど介さずに $modified_time = date('Y/m/d', $rows['1382296955']); とした方が手っ取り早いのでは? 何のためにわざわざ分解していいるのかが謎です。

関連するQ&A

  • 同じ日付が取得できない

    こんにちは、 $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
  • 日付を付けたファイルを作成したい

    ファイル名に日付を付加したいのですが、うまく出来ませんでした。 $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
  • getdate関数の返り値を0パディング

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

    • ベストアンサー
    • PHP
  • 1桁の日付に0を付ける

    日時を取得して、表示する際に「2010/3/16」を、→「2010/03/16」 のように数字が1桁の時だけ「0」を足して表示させたいのですが どのようにすれば良いでしょうか。 ------------------------------------- ($sec,$min,$hour,$day,$mon,$yea,$wdy,$yday,$isdst) = localtime(time); $year = $yea + 1900; $mon++; $nitiji= join("","$year/$mon/$day"," ","$hour",":","$min"); ------------------------------------- 上記の方法で、perlで書き出したhtmlに「$nitiji」を埋め込んで表示させているのですが 「0」をつけることができず困っております。 (システム上、そのようにしたいので) できれば「print(・・・」「「printf(・・・」」などの形式ではなく 「$nitiji」に直接その数値を入れられると良いのですが。 良い方法がありましたら宜しくお願いします。

    • ベストアンサー
    • Perl
  • 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
  • localtimeについて

    まだCGIを勉強はじめのなのですが、localtimeについて質問させてください。 書籍で時間取得には ($sec,$min,$hour,$mday,$mon,$year,$wno) = localtime(time); とし、time関数で得たものをlocaltime関数で整形 といった事が書かれています。 まずわからないのが最初の ($sec,$min,$hour,$mday,$mon,$year,$wno) = の部分なのですが、カッコ内に変数を並べるというのはどういった命令なのでしょうか?書籍ではここまででこのような使い方や記述は出てきていないので、それ自体がよく理解できずにいます。それとも($sec,$min,$hour,$mday,$mon,$year,$wno) = localtime(time);をおきまりパターンとしてワンセットで覚えるべき事なのでしょうか。 続いてlocaltime(time)ですが、これは()内のtime関数によって取得された1970年基準からの秒数を、localtimeによって英語圏での標準的な日付時間表記に直して表示するという事で良いのですよね? これが、なぜ ($sec,$min,$hour,$mday,$mon,$year,$wno) とすることで各変数に割り振ることができるのかがよく分かりません。 これらはおきまりパターンとして覚えるべき事なのでしょうか?それとも配列のようにあるパターンに乗っ取って書かれ得いる事で他に応用がきくような意味合いのものなのでしょうか? ご教授いただきたく思います。 よろしくお願いします。

    • 締切済み
    • CGI
  • 日付求め

    お世話になります。 早速ですが、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
  • パッケージを利用した際の値に謎が!!

    Perlのパッケージについて質問させてもらいます。 Time::Localを利用して1970年1月1日からの経過秒数を取得しようと考えています。 次の様な記述をして実験したのですが、私が想定している通りの動作になりません。 記述(テスト1) (以下からスクリプト開始) use Time::Local; $year=1970; $mon =1; $mday=1; $hours = 10; $min = 0; $sec = 0; $time = timelocal($sec, $min, $hours, $mday, $mon - 1, $year); print $time; (この1行上の行でスクリプト終了) この場合の$timeは、"3600"という答えを得ました。よって、"0"にするために次の様に スクリプトを書き変えて実験しました。 記述(テスト2) (以下からスクリプト開始) use Time::Local; $year=1970; $mon =1; $mday=1; $hours = 9; $min = 0; $sec = 0; $time = timelocal($sec, $min, $hours, $mday, $mon - 1, $year); print $time; (この1行上の行でスクリプト終了) この場合の$timeは、"-3600"という答えを得ました。 なんか変ですね。"0"の答えを得るためにはどうすればよいのでしょうか? よろしくお願いします。

  • 先月(YYYYMM)の生成方法

    言語は問いません。 先月をYYYYMM形式の文字列で得るクールな方法ってありますか? Perlで以下のように書けば正しく動きますが、なんかダサイ気がします。 my ($sec, $min, $hour, $mday, $mon, $year) = localtime ; $year -= 1 if $mon == 0; $mon = '12' if $mon == 0; $yearmonth = sprintf("%4d%02d", $year+1900, $mon); よろしくお願いします。

  • 掲示板への書き込み時間

    掲示板CGIについて質問です。 使おうとしているスクリプトはそのままアップロードすると書き込みした時間の表示が 「4/14 (Sun) 17:10」 のようになります。 これを 「2003 4/14 (日) 17:10:50」 のように年と秒まで加えたいのです。 それで後者のように表示される掲示板CGIを参考にしてみましたが、目立った違いはないように思え、どこをどう変更すれば年や秒まで表示されるようになるかわかりません。 思い当たる部分はこのあたりなのですが…。 ↓このように記述されています ************ $ENV{'TZ'} = "JST-9"; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year = sprintf("%02d",$year + 1900); $month = sprintf("%02d",$mon + 1); $mday = sprintf("%02d",$mday); if ( substr($month,0,1) == 0 ) { $month =~ s/0/ /; } if ( substr($mday,0,1) == 0 ) { $mday =~ s/0/ /; } $hour = sprintf("%02d",$hour); $min = sprintf("%02d",$min); $sec = sprintf("%02d",$sec); $youbi = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday]; $date_now = "$month/$mday ($youbi) $hour:$min"; ************ CGIに手を加えてレイアウトの変更くらいはいつもやっています。 もし書き換える方法がありましたら教えていただければと思います。 どうぞよろしくお願い致します。

    • ベストアンサー
    • CGI

専門家に質問してみよう