• ベストアンサー

正確に一ヶ月前の日付を取得するには?

いつもお世話になっていますm(__)m PHP3で正確に一ヶ月前の日付を取得したいのですが みなさんどうされているのでしょうか? 改めてみるとそんな関数すら自前なんでしょうか(y.y; よろしくお願いします。

  • MAGI
  • お礼率23% (6/26)
  • PHP
  • 回答数2
  • ありがとう数8

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

  • ベストアンサー
  • pancho
  • ベストアンサー率35% (302/848)
回答No.2

汎用的に説明すると  ・月 ← 月-1  ・1月の場合は、月 ← 月+11(12ということですね)、年 ← 年-1  ・上記で定義した年月日が存在しない場合、年月を元に戻して 日 ← 1 終了。 1ヶ月前をJRの指定席予約では「前月の同日が存在しない場合、翌月の1日」(つまり3月31日の1ヶ月前は、3月1日)なので、上記にしています。 もし、「前月の同日が存在しない場合、前月の最終日」とするなら、3つ目の手順を「年月日が存在しない場合、日 ← 日-1」をループさせてください。 以上。

MAGI
質問者

補足

1ヶ月前をJRの指定席予約では「前月の同日が存在しない場合、翌月の1日」(つまり3月31日の1ヶ月前は、3月1日)なので、上記にしています。 というのはプログラム的には楽でしょうけど^^; 「前月の同日が存在しない場合、前月の最終日」 が一般的だと思うのでループさせて作成します ありがとうございました

その他の回答 (1)

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.1

一ヶ月ってのをどうやって定義したら良いんでしょうか? 単純に前月ならば月だけをデクリメントして、0以下になったら年をデクリメントって感じだと思いますが。 日までやるとかなり面倒でしょうけど・・・

MAGI
質問者

補足

投稿してから shigatsuさんが云うようなので いいか、なんて思っちゃいました 2000/3/31の1ヶ月前は・・・2000/2/29? 確かに面倒ですよね^^;

関連するQ&A

  • ActionScriptで1ヶ月前の日付や数日前の日付を得たい

    ActionScript2.0を使って日付を利用したグラフを作成しております。 X軸とY軸があり、X軸を日付で使います。 一ヶ月前から本日までの日付を目盛りに表示したいのです。 今日の日付は以下のようにしたら取得できると思うのですが、 //本日 var this_d = new Date(); today_date.text = (this_d.getMonth()+1) +"/" + this_d.getDate(); 一ヶ月前、25日前、20日前、のように特定の月と日を簡単に出力する方法がわかりません。 PHPやPerlではタイムスタンプから日付に戻せると思いますが、actionScriptでもそういった方法があれば便利かなとおもいましたが・・・ 恐れ入りますがご教授ください。

    • ベストアンサー
    • Flash
  • 6ヶ月前の日付を取得するにはどのようにすればよいでしょうか?

    6ヶ月前の日付を取得するにはどのようにすればよいでしょうか? いろいろどのようにすれば良いのか考えていたら、だんだんわけわからなくなってきてしまいました。 例えば「7月30日の6ヶ月前」という場合どのように書けばよいでしょうか。 お知恵をお貸しください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 指定した日付からの前後を取得

    今日ではない特定の日付(2007-4-5)から数えて、 たとえば前後30日目の日付を取得する関数はあるでしょうか? 環境はphp5です。 よろしくお願いします。

    • 締切済み
    • PHP
  • 昨日の日付を取得するVBscript

    お世話になります。 VBSCRIPTで本日の日付を取得するのはdate関数でできますが、昨日の日付を取得するにはどうしたらよいのでしょうか?

  • パソコンの日付を取得するには

    いつもお世話になっております。 データベースのテーブルに日付を入力するのですが、パソコンの日付を取得したいのです。できますでしょうか? もしテーブルで、できないようでしたら、なんでもよいので、取得できる方法を教えていただければ幸いでございます。 宜しくお願いいたします。

  • PHPで指定した日付の1ケ月前表示

    MySQLにある日付を拾ってきて表示しています。 <?php echo $row_target_date['ap_date']; ?> 上記のPHPでは、MySQLのテープルのap_dateカラムにある日付を拾ってきて表示するようにしています。 この1ケ月前を表示したいと考えています。 <?php echo "1月前:" . date("Y/m/d",strtotime("-1 month" ,strtotime("echo $row_target_date['ap_date']"))) . "<BR>"; ?> では表示できませんでした。 表示方法についてご指導いただきたくお願い致します。

    • ベストアンサー
    • PHP
  • 一ヶ月前の月を表示させたい!

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

    • ベストアンサー
    • PHP
  • ○日前、○ヶ月前の日付を求めるコマンド

    Linuxコマンドに関する質問です。 date +%y%m%d にて今日の日付が6桁の数字で表されると思いますが、 前日、前月、また数ヶ月前の日付を求めるコマンドを調べています。 検索したところ date -v1d '+%y%m%d' で前日の日付を求められるという情報があったのですが これを試しても"-vというオプションは無い"と怒られます。 お分かりになる方がいましたらお教えください。

  • 2038年問題 日付算出

    2038年問題で困っています。 指定した日付から指定した日数後および前(マイナス日数)の日付を取得するCのプログラムがあります。 これまでmktime関数をして算出していましたが、2038年以降の日付を指定するとエラーになるようです。 上記関数をmktime関数を使用せず自前で作成しないといけないのですが、どう作っていいか思いつきません。どなたか参考になるようなサイト、およびサンプルプログラムがあれば教えていただきたいと思っています。 よろしくお願いします。

  • その月の日付を取得するには?

    PHPなどで、今日の日付を取得し、 その月に対して1日~31日までというような 終わる日にちを取得することは可能なのでしょうか?? 現在のプログラムでPHPで日付を取得して、 例:(今日だと2004/08) などというように その後、年と月は取得できているので、 その日にち1日から31日を取得できれば、 between A and B で、その月の内容を取得できるのですが、 無理でしょうか??