電子書籍の厳選無料作品が豊富!

いつもお世話になっています。

今回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");
の一ヶ月前の表示方法を、知りたい。

大変恐縮ですが、
どなたか、知識をお持ちの方、是非ご指導ください。

A 回答 (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日前とかだったような・・?
    • good
    • 0
この回答へのお礼

お礼が遅くなってすいません。

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

お礼日時:2007/12/09 00:31

タイムスタンプで現在の値より30日引いて再度、日付の形で取得してあげれば可能です。




$today=mktime(0,0,0,date("m"),date("d")-30,date("Y"));
$oldday=date("Y-m-d",$today);
echo $oldday;
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

先日皆様から頂いたアドバイスにて、
一ヶ月前の表示が出来ました。

大変感謝しています。

また何かありましたら、
是非ご教授ください。

お礼日時:2007/12/10 15:22

PHP 5のマニュアルでは、


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

参考URL:http://php.benscom.com/manual/ja/function.strfti …
    • good
    • 0
この回答へのお礼

お礼が遅くなりましてすいません。

月曜日に会社で是非やってみます。

また何かありましたら、ご指導いただければ、
幸いです。

お礼日時:2007/12/09 00:33

#1, また適当なことを書いてしまいました。


最後のは忘れてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!