- ベストアンサー
日付の受け取り方
お世話になります。 Postgresに日付TBというテーブルがあります。 日付TBの日付というレコードから、2004-08-01というデータを受け取った場合 PHPで平成16年8月(年月のみ)と表示したいです。 どのような書き方をすればよろしいでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$y = "平成" . $y-1988 . "年"; ではだめなのでしょうか? 昭和の日付もあるなら、条件分けも必要かとは思います…。 if( $y > 1988 ) { $y = "平成" . $y-1988 . "年"; } else if ( ( $y <= 1988 ) && ( $y > 1925 ) ) { #$yを昭和年号にする処理 } else { #それ以外の数値が入っていた場合の処理 } 他にもっとスマートなやり方があるのかどうか分かりませんのが、 ご参考までに。
その他の回答 (1)
- cojirou
- ベストアンサー率50% (59/117)
失礼とは思いますが、 以前、「日付の分解」で質問し、ご教授いただいた方法を 応用すれば解ける問題ではないでしょうか? http://okweb.jp/kotaeru.php3?q=951702 ご参考までに。
補足
お返事ありがとうございます。 おっしゃるように前回教えて頂いた内容で年月までの表示はできました。 また、○○○○年→平成(もしくは昭和)○○年とするには if ($y == "2004") { $y = "平成16年"; } elseif ($y == "2003") { $y = "平成15年"; } elseif (続く) prinst $y; という方法でしか思いつきませんでした。 他に手短にする方法はありますでしょうか。
お礼
ありがとうございます、大変参考になりました。 結果下記のようになりました。 $ym = $row['日付']; $yms = split("-", $ym); $y = $yms[0]; $m = $yms[1]; if ($y > 1988 ) { $y = $y-1988 ; $html .= "平成" . $y . "年" . $m . "月\n"; }elseif ($y < 1988 ) { $y = $y-1925 ; $html .= "昭和" . $y . "年" . $m . "月\n"; }