[php]nヶ月前を正確に計算する関数

カテゴリ: php / author: uechoco / 2008年07月08日 15:17:57
この記事を読む時間:132くらい

昔のソースコードを整理してたら、こんな関数をつくったのを思い出して、埋もれる前に探し出した。

strtotime('-1 month')の結果が自分の意図しているものにならなかったから作ったんだっけかな。そもそも3月31日の1ヶ月前って何月何日っていう正確な定義はないんだけど、そのプロジェクトではこの関数の定義で決めたんだっけかな。どうだっけかな。

php:
  1. function get_n_month_ago($n)
  2.     {
  3.         // nヶ月前を正確に計算する関数
  4.         $now_Y = date("Y");
  5.         $now_m = date("m");
  6.         $now_d = date("d");
  7.         $last_d = date('d', mktime(0, 0, 0, $now_m-$n+1, 0, $now_Y));
  8.         if ($now_d >= $last_d) {
  9.             $n_month_ago = date("y/m/d", mktime(0, 0, 0, $now_m-$n+1, 0, $now_Y));
  10.         } else {
  11.             $n_month_ago = date("y/m/d", mktime(0, 0, 0, $now_m-$n, $now_d, $now_Y));
  12.         }
  13.         return $n_month_ago;
  14.     }


1件のコメント »

  1. コメント by 通りすがり — 2008 年 7 月 8 日 @ 23 : 25 : 38

    日付が変わる瞬間に関数が呼ばれたら正しくないですよね.

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.