この投稿は、jaredlong によって最終編集されました: 2014-05-31 20:33:46 行 $row['tkpc']tkpc 値には、TKPC10069999 (左から右、2010 年 6 月を意味します)、TKPC1010093A (2010 年 10 月)、TKPC12030AE3 (2012 年 3 月) が含まれます
これらの値がより大きいかどうかを確認するために比較する方法5歳以上。
------解決策------------------
アイデア: 文字列に基づいて年と月をインターセプトします例: TKPC10069999 は 1006 をインターセプトし、$newtime,
として時間に変換し、それを現在時間に 5 年を加えたものと比較します, $addfiveyear = strtotime(" 5 year", time())
自分で試してみることができます
if ($newtime > $addfiveyear){
echo "5 年以上";
}
------解決策--------------------
文字列のサイズ比較、印象としてはASCII値をバイトごとに比較する必要があります
つまり、 TKPC10069999 のような文字列 追加の処理は必要なく、直接比較できます。
もうすぐ休日なので、2014 年 6 月 1 日として計算し、date('Ym') を使用して 1406 を生成し、5 年を引いて TKPC09060000 に結合します。サイズを直接比較してください
-----解決策---------
<br /><?php<br /><br />$arr = array('TKPC10069999', 'TKPC1010093A', 'TKPC12030AE3');<br />foreach($arr as $val){<br /> check5years($val);<br />}<br /><br />echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';<br /><br />function check5years($str){<br /> $year = substr($str, 4, 2);<br /> $month = substr($str, 6, 2);<br /> $tkpc = strtotime('20'.$year.'-'.$month.'-01');<br /> echo $str.'<br>';<br /> echo 'tkpc:'.$tkpc.'<br>';<br /> if(strtotime("+5 year", $tkpc)<time()){<br /> echo '超过5年';<br /> }else{<br /> echo '未超过5年';<br /> }<br /> echo '<br><br>';<br />}<br /><br />?><br />
を出力できません------解決策------ - --
echo $row['tkpc'], 4, 2) * 12 + $row['tkpc'], 6, 2) > (date('y') - 5) * 12 + date('m') ? '未满5年' : '满5年';