PHP はどのようにして年齢やドメインの年齢を計算しますか? YYYY-mm-dd は既知です。ドメイン名の古さを調べます。
ドメイン名の年齢を計算する方法がずっと気になっていて、自分で関数を書いたのですが、一部の年が閏年なので間違っていました。
<br /> <?php <br /> <br /> <br /> //时间输入必须单位<br /> function mathAge($ymd2){<br /> $ymd1 = "2012-2-27";<br /> @list($y1,$m1,$d1) = explode("-",date("Y-m-d", strtotime($ymd1)));<br /> @list($y2,$m2,$d2) = explode("-",date("Y-m-d", strtotime($ymd2)));<br /> <br /> $arr = array(<br /> "年" => round( $y1-$y2 ),<br /> "月" => round( $m1-$m2 ),<br /> "天" => round( $d1-$d2 ),<br /> );<br /> <br /> $arr["天"] = round($d1-$d2);<br /> while ($arr["天"] < 0) {<br /> $arr["天"] += 30;<br /> $arr["月"] -= 1;<br /> }<br /> <br /> while ($arr["月"] < 0) {<br /> $arr["月"] += 12;<br /> $arr["年"] -= 1;<br /> }<br /> $txt = '';<br /> foreach ($arr as $k => $v)<br /> {<br /> if(!$v) continue;<br /> $txt .= $v.$k;<br /> }<br /> echo "$ymd1 - $ymd2 = $txt \n";<br /> return $txt;<br /> }<br /> <br /> $dateArr = array(<br /> "2011-12-28",<br /> "2011-12-29",<br /> "2011-12-27",<br /> <br /> "2010-12-28",<br /> "2010-12-29",<br /> "2010-12-27",<br /> <br /> "2011-10-1",<br /> "2010-5-1",<br /> "2010-2-28",<br /> <br /> "1995-1-1",<br /> "1995-12-31",<br /> );<br /> foreach ($dateArr as $date)<br /> {<br /> mathAge($date);<br /> <br /> }<br /> ?><br /> <br />
2012-2-27 - 2011-12-28 = 1月29天 <br /> 2012-2-27 - 2011-12-29 = 1月28天 <br /> 2012-2-27 - 2011-12-27 = 2月 <br /> 2012-2-27 - 2010-12-28 = 1年1月29天 <br /> 2012-2-27 - 2010-12-29 = 1年1月28天 <br /> 2012-2-27 - 2010-12-27 = 1年2月 <br /> 2012-2-27 - 2011-10-1 = 4月26天 <br /> 2012-2-27 - 2010-5-1 = 1年9月26天 <br /> 2012-2-27 - 2010-2-28 = 1年11月29天 <br /> 2012-2-27 - 1995-1-1 = 17年1月26天 <br /> 2012-2-27 - 1995-12-31 = 16年1月26天