PHPで指定日からの経過年数を求める
不動産物件検索システムを作成している過程で、築年からの経過年数(築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.'ヶ月' );