• ベストアンサー

前月の取得について

PHP4で前の月を取得したい場合、以下のような形では 誤りだと思うのですが、どのようにすれば、 取得できるでしょうか。 よろしくお願いします。 $date = date("Ym") - 1;

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

PHPは日付に関して柔軟なので1~12月以外の月 でも自動で計算してくれるのでOKです。 #2さんのおっしゃるとおり月末処理は考慮する 必要があります。2/31は3/3となるので・・・。 先月の1日は mktime(0,0,0,date("m")-1,1,date("Y")) 先月の末日は mktime(0,0,0,date("m"),0,date("Y")) Ym形式で表示するなら以下としてください。 date("Ym",mktime(0,0,0,date("m")-1,1,date("Y")))

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

<?php $date = date("Ym") -1; if($date % 100 == 0){ $date = $date -100 +12; } ?>

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 手法は様々にありますが、以下の点に注意してください。 ・日付は無視でよいですか?  もし日付も気にされる場合はご注意を。3/31から単純に月を-1すると2/31になってしまいます。 ・マイナス値に注意を 1月の時に-1すると、処理しないと0月になってしまうので。 このあたりをちゃんと考慮すると、案外長いソースにならざるを得ないものです。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

mktimeを使ったらどうでしょう <?php $lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); echo "前の月は".date("m", $lastmonth)."月です"; ?>

関連するQ&A