ホームページ  >  記事  >  バックエンド開発  >  2 つの日付の間の年数、月数、および日数を計算する PHP 関数

2 つの日付の間の年数、月数、および日数を計算する PHP 関数

WBOY
WBOYオリジナル
2016-06-20 13:03:591388ブラウズ

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 'e03b848252eb9375d56be284e690e873';print_r(diffDate('2012-12-1','2011) - 11-5'));//これら 2 つのパラメータには順序はありません

出力結果は次のとおりです:

Array

(
[年] => ; 1
[月] => 0
[日] => 26

)

上記の結果は、これら 2 つの日付が 1 年と 26 日離れていることを意味します。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。