• ベストアンサー

一ヶ月前の月を表示させたい!

いつもお世話になっています。 今回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"); の一ヶ月前の表示方法を、知りたい。 大変恐縮ですが、 どなたか、知識をお持ちの方、是非ご指導ください。

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

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日前とかだったような・・?

se-nabe
質問者

お礼

お礼が遅くなってすいません。 今会社ではないので、結果報告できませんが、 早速のご回答ありがとうございます。 また何かありましたら、 ご指導していただければ幸いです。

その他の回答 (3)

  • ma2shin
  • ベストアンサー率41% (69/167)
回答No.4

タイムスタンプで現在の値より30日引いて再度、日付の形で取得してあげれば可能です。 $today=mktime(0,0,0,date("m"),date("d")-30,date("Y")); $oldday=date("Y-m-d",$today); echo $oldday;

se-nabe
質問者

お礼

ご回答ありがとうございます。 先日皆様から頂いたアドバイスにて、 一ヶ月前の表示が出来ました。 大変感謝しています。 また何かありましたら、 是非ご教授ください。

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

PHP 5のマニュアルでは、 strftime("%F" %F というパラメーターは存在しないようですけど??使うなら "%x" の方でしょうか? または date("Y-m-d", strtotime("-1 month"));

参考URL:
http://php.benscom.com/manual/ja/function.strftime.php
se-nabe
質問者

お礼

お礼が遅くなりましてすいません。 月曜日に会社で是非やってみます。 また何かありましたら、ご指導いただければ、 幸いです。

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

#1, また適当なことを書いてしまいました。 最後のは忘れてください。

関連するQ&A

専門家に質問してみよう