- ベストアンサー
一ヶ月前の月を表示させたい!
いつもお世話になっています。 今回date関数で引っ張ってきた「m」(month)を、 一ヶ月前の表示にさせたくて困っています。 ソースはこんな感じです。 --ここはちゃんと出ます。 $today = date("Y-m-d"); --print結果 2007-12-07←この形で、一ヶ月前に表示させたい。 --これでいけると思ったんですが、、、 $before = strftime("%F", strtotime("-1month")); --print結果 何も出ない。strftime関数はphp5.2.4は対応していないんでしょうか(?。?);4.4.6ではこれで通ります。 --苦肉の策でこんなのも作ってみましたが、 $current_year = date("Y"); $current_month = date("n"); $current_day = date("d"); $hiki = ($current_month-1); $before = date("Y-$hiki-d"); --print結果 2007-11-07(しかし、これはただ12と言う数字から-1しただけなので、来年の1月になると、2008-0-1)となってしまいます。これは是非回避したい。 質問まとめ php5.2.4で通る 例 $today = date("Y-m-d"); の一ヶ月前の表示方法を、知りたい。 大変恐縮ですが、 どなたか、知識をお持ちの方、是非ご指導ください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
echo date('Y-m-d') . '<br />'; echo date('Y-m-d', mktime(0, 0, 0, date('m') - 1, date('d'), date('Y'))) . '<br />'; -1 month は30日前とかだったような・・?
その他の回答 (3)
- ma2shin
- ベストアンサー率41% (69/167)
タイムスタンプで現在の値より30日引いて再度、日付の形で取得してあげれば可能です。 $today=mktime(0,0,0,date("m"),date("d")-30,date("Y")); $oldday=date("Y-m-d",$today); echo $oldday;
お礼
ご回答ありがとうございます。 先日皆様から頂いたアドバイスにて、 一ヶ月前の表示が出来ました。 大変感謝しています。 また何かありましたら、 是非ご教授ください。
- hrm_mmm
- ベストアンサー率63% (292/459)
PHP 5のマニュアルでは、 strftime("%F" %F というパラメーターは存在しないようですけど??使うなら "%x" の方でしょうか? または date("Y-m-d", strtotime("-1 month"));
お礼
お礼が遅くなりましてすいません。 月曜日に会社で是非やってみます。 また何かありましたら、ご指導いただければ、 幸いです。
- tany180sx
- ベストアンサー率63% (239/379)
#1, また適当なことを書いてしまいました。 最後のは忘れてください。
お礼
お礼が遅くなってすいません。 今会社ではないので、結果報告できませんが、 早速のご回答ありがとうございます。 また何かありましたら、 ご指導していただければ幸いです。