就是把1变成20110708001,2变成20110708002,10变成20110708010,123变成20110708123
20110708是日期,001是编号
我的写法是 <?php
function formatnum($num){
if ($num<10){
return date('Ymd').'00'.$num;
}
elseif($num>9 and $num<100) 
{
return date('Ymd').'0'.$num;
}
else{
return date('Ymd').$num;}
}
echo formatnum('1');
?>这个感觉很不科学,有没有更好办法其实这个是用于自动生成编号用的,

解决方案 »

  1.   

    function formatnum($num) {
       return date('Ymd').str_pad($num, 3, '0', STR_PAD_LEFT);
    }
    echo formatnum(1).'<br />'.formatnum(10).'<br />'.formatnum(100);
      

  2.   

    这样写
    function formatnum($num, $width=3){
      return sprintf("%s%0{$width}d", date('Ymd'), $num);
    }
    echo formatnum('1');//20110708001
    echo formatnum('5');//20110708005
    echo formatnum('999');//20110708999
      

  3.   

    function _format($n){
    return date('Ymd', time()) . str_pad($n, 3, '0', 0);
    }
    echo _format(10);
      

  4.   

    function formatnum($num, $width=3){
      return sprintf("%s%0{$width}d", date('Ymd'), $num);
    }
    echo formatnum('1');//20110708001
    echo formatnum('5');//20110708005
    echo formatnum('999');//20110708999这个很酷,我之前也是和楼主类似,用的很笨的方法写的。