経過期間計算がうまくいかない
2つの日付間の年月日を表示するプログラムを作成しているのですが上手くいきません
例えば2000/1/1から2000/12/31の経過期間を出した場合、本来なら1年丁度にしたいのですが、1年と1日になってしまいます
ですがこれが2000/1/1から2003/12/31だと丁度4年となったりしてしまい、上手くいく場合と上手くいかない場合がまちまちで困っています
以下はプログラムからprint関連を抜いたものです
<?php
$date = "2000/1/1";
$date2 = "2003/12/31";
//対象日と今日の日付をそれぞれ配列に格納
$Sday = split("/", $date);
$Lday = split("/", $date2);
//日付を計算用にタイムスタンプ(ミリ秒)へ変換
$SdayTime = mktime(0,0,0,$Sday[1] , $Sday[2] , $Sday[0]);
$LdayTime = mktime(0,0,0,$Lday[1] , $Lday[2] , $Lday[0]);
//2つの日付間の差(ミリ秒)を計算
$diffTime = $LdayTime - $SdayTime ;
//○年○ヶ月○日と表示したい場合
$diffYMD = (date("Y",$diffTime ) - 1970) . "year" . (date("m",$diffTime ) - 1) . "month" . (date("d",$diffTime )) . "day";
//print $diffYMD . "\n";
$diffY = (date("Y",$diffTime ) - 1970); //期間・年
$diffM = (date("m",$diffTime ) - 1); //期間・月
$diffD = (date("d",$diffTime )); //期間・日
if ($diffD < "10"){
$diffD = ltrim($diffD,"0");
}
if ($diffD == "31" && $diffM == "11"){
$diffD = 0;
$diffM = 0;
$diffY = $diffY + 1;
}
if ($diffM == 0 && $diffD == 0){
$diffYY = $diffY;
} else {
$diffYY = $diffY + 1;
}
?>
お礼
回答ありがとうございました。見事に出来ました