本帖最后由 jaredlong 于 2014-05-31 20:33:46 编辑

解决方案 »

  1.   

    思路:根据字符串截取年月 例如:TKPC10069999 截取得到1006再转化为时间为$newtime,
    再与当前时间加上5年比较,$addfiveyear = strtotime("+5 year",time())具体自己可以去试着实现if ($newtime > $addfiveyear){
        echo "超过5年";
    }
      

  2.   

    $x="TKMB15030WE5";
      $year = substr($x,4,2);
      $month = substr($x,6,2);
      $tkpc = strtotime('$year-$month');
    $addfiveyear = strtotime("+5 year",time());
     echo "$tkpc";
     echo "和" ;
     echo "$addfiveyear";尝试失败了。$tkpc输出不了
      

  3.   

    字符串比大小,印象中应该是按字节依次比较ASCII值
    也就是说,TKPC10069999这种字符串不需要额外处理可以直接比较
    马上过节了,按2014-6-1算,用date('Ym')生成1406,减5年前后拼接成TKPC09060000,直接跟它比大小
      

  4.   

    <?php$arr = array('TKPC10069999', 'TKPC1010093A', 'TKPC12030AE3');
    foreach($arr as $val){
        check5years($val);
    }echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';function check5years($str){
        $year = substr($str, 4, 2);
        $month = substr($str, 6, 2);
        $tkpc = strtotime('20'.$year.'-'.$month.'-01');
        echo $str.'<br>';
        echo 'tkpc:'.$tkpc.'<br>';
        if(strtotime("+5 year", $tkpc)<time()){
            echo '超过5年';
        }else{
            echo '未超过5年';
        }
        echo '<br><br>';
    }?>
      

  5.   

    谁跟谁比?
    相互比较还是与今天比?为何要转化成时间?
    直接化成月不更简单吗?
     substr($x,4,2) * 12 + substr($x,6,2);
      

  6.   


    tkpc的值和当前时间的5年前比。5年内提示未满5年,超过5年提示满5年
      

  7.   

    echo $row['tkpc'], 4, 2) * 12 + $row['tkpc'], 6, 2) > (date('y') - 5) * 12 + date('m') ? '未满5年' : '满5年';