OA のようなプロジェクトに取り組んでいる場合、従業員の勤続年数を年や月単位で正確に計算するだけでは十分ではない状況に遭遇することがあります。これは、何年まで正確であるかを示す関数です。日々。 1 年と 25 日の間隔で表示できます。
<p>/*</p>*function:计算两个日期相隔多少年,多少月,多少天<br />*param string $date1[格式如:2011-11-5]<br />*param string $date2[格式如:2012-12-01]<br />*return array array('年','月','日');<br />*/<br />function diffDate($date1,$date2){<br /> if(strtotime($date1)>strtotime($date2)){<br /> $tmp=$date2;<br /> $date2=$date1;<br /> $date1=$tmp;<br /> }<br /> list($Y1,$m1,$d1)=explode('-',$date1);<br /> list($Y2,$m2,$d2)=explode('-',$date2);<br /> $Y=$Y2-$Y1;<br /> $m=$m2-$m1;<br /> $d=$d2-$d1;<br /> if($d<0){<br /> $d+=(int)date('t',strtotime("-1 month $date2"));<br /> $m--;<br /> }<br /> if($m<0){<br /> $m+=12;<br /> $y--;<br /> }<br /> return array('year'=>$Y,'month'=>$m,'day'=>$d);<br /><p>}</p>
この関数は次のように使用されます: echo '
';print_r(diffDate('2012-12-1','2011) - 11-5'));//これら 2 つのパラメータには順序はありません出力結果は次のとおりです:
Array
(
[年] => ; 1
[月] => 0
[日] => 26)
上記の結果は、これら 2 つの日付が 1 年と 26 日離れていることを意味します。