<?php
FUNCTION changedate($str){
$str=str_replace("年", "-",$str);
$str=str_replace("月", "-",$str);
$str=str_replace("日", "",$str);
$str=strftime("%Y-%m-%d",strtotime($str));
return $str;
}
// 结束
$a="2006年03月04日";
$b="2006年3月4日";
echo changedate($a)."<BR>";
echo changedate($b)."<BR>";
?>

解决方案 »

  1.   

    我只知道最笨的方法
    1.str_replace掉年,月,日成 - / 等,需要更细处理就strtotime
    2.substr获取2006 03 04,然后用date函数获取得到2006-03-04
      

  2.   

    $str = ""2006年04月03日";
    方法1.
    $a = preg_split("/\D{1,2}/",$str);
    array_pop($a);
    echo join("-",$a);方法2:
    echo preg_replace("/(\d{4}).*?(\d{1,2}).*?(\d{1,2}).*/","$1-$2-$3",$str);
      

  3.   

    忽,给楼上补充一个。。
    /\D/直接替换成。。 -
    即可。。
    不用JOIN。
    也不用捕获。。
      

  4.   

    $s = '2006年3月4日';
    echo date('Y-m-d', strtotime(join('-', sscanf($s, '%d年%d月%d日'))));
      

  5.   

    晕,回muxrwc(王辰) ( 一星(中级)) 信誉:100
      

  6.   

    echo preg_replace("/(\d{4}).*?(\d{1,2}).*?(\d{1,2}).*/","$1-$2-$3",$str);
    对于2006年03月04日是对的,但是对于2006年3月4日的时候就不对了,别人要是是
    2006-03-04的格式呀!
      

  7.   

    回leyan728(乐言) ( 一星(中级)) 信誉:107,
    经测试
    $str="2006年04月03日";//或者 $str = "$str="2006年4月3日";
    echo preg_replace("/(\d{4}).*?(\d{1,2}).*?(\d{1,2}).*/","$1-$2-$3",$str);
    都可正常工作。
      

  8.   

    或者
    echo date('Y-m-d', strtotime(preg_replace('/\D+/', '-', $s)));
      

  9.   

    会lvlfforever(那一年) (
    你得到的是  2006-4-3而不是2006-04-03
      

  10.   

    不好意思,没有看清最后结果是 XXXX-XX-XX格式:-),
    请参考唠叨老大的答案。
      

  11.   

    - -#

    知道了
    抱歉。。
    <script type="text/javascript">
    var time = "2006年04月03日";
    time.match(/\d+/g).join("-");
    </script>
    飘走
      

  12.   

    $str = '时间:2006年8月9日 时间:2006年03月4日 时间:2007年3月04日 时间:2009年12月22日';
    $str = preg_replace('/(\d{4})年(\d+)月(\d+)日/e',"dateF('\\1-\\2-\\3')",$str);
    function dateF($mix)
    {
       return date("Y-m-d",strtotime($mix));
    }
    echo $str;
      

  13.   

    FUNCTION changedate($str){
    $str=str_replace("年", "-",$str);
    $str=str_replace("月", "-",$str);
    $str=str_replace("日", "",$str);
    $str=date("Y-m-d",strtotime($str));
    return $str;
    }