Heim  >  Artikel  >  Backend-Entwicklung  >  php计算两个日期相隔多少年,多少月,多少日的函数

php计算两个日期相隔多少年,多少月,多少日的函数

WBOY
WBOYOriginal
2016-06-20 13:03:591388Durchsuche

在做类似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'));//这两个参数无顺序之分<p>打印结果如下:</p><p>Array</p>(<br>    [year] => 1<br>    [month] => 0<br>    [day] => 26<br><p>)</p><p>以上结果的意思即这两日期相隔1年26天。</p><p class="item-note"><br></p>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn