ロゴ
HOME > PHPの便利な小技 > PHPで指定日からの経過年数を求める

PHPで指定日からの経過年数を求める

2014年04月03日

不動産物件検索システムを作成している過程で、築年からの経過年数(築xx年)を自動的に求められると楽だなぁと実装してあるのですが、ふと自分で書いたものよりもっと良いものは無いかな?と検索してみたところ、ユリウス積算日を使ったものが割と多いようです。ですが、PHPのコンパイル時にカレンダー関連の関数を有効にする必要があり、レン鯖だと使えない事もあるようです。

といった理由から配布物としては使えませんので、参考までにこんな感じでってコードを掲載しておきます。

$yyy = 2013;
$mmm = 1;
$ddd = 1;

//計算したい過去の日付
  $mk1 = mktime(0,0,0,$mmm,$ddd,$yyy);

//今日
  $mk2 = mktime(0,0,0,date('n'),date('j'),date('Y'));

//差を一日の秒数で割る -> 日数となる
  $sa = ($mk2-$mk1) / (60*60*24);
  
//1年の平均日数 うるう年を踏まえて 0.25日を足す
  $yy  = 365.25; 
  
//1ヶ月の平均日数
  $mm  = 365.25 / 12;

//[年] 日数差を1年の平均で割る。端数は切り捨てる
  $YYY = floor( ($sa / $yy) );
  
//[月] 割り出した年と1年平均を掛けた日数を差から引き、1ヶ月平均で割る。端数は切り捨てる
  $MMM =  floor( ($sa - ($yy*$YYY) ) / $mm );

  print_r( $YYY .'年'. $MMM.'ヶ月' );