如果你想实现这样的功能,你得事先考虑所有可能的输入情况,然后分别用replace()把它替换成你需要的格式。用正则表达式来匹配,这样不同的输入情况会被分别匹配。

解决方案 »

  1.   

    <script>
    function formatdatetime(str){
    var d=new Date(str.replace(/-/,"/"))
    var m=d.getMonth()<9?"0"+(d.getMonth()+1):(d.getMonth()+1)
    return d.getFullYear()+"-"+m+"-"+(d.getDate()<10?"0":"")+d.getDate();
    }
    ret=formatdatetime("2002-5-2")
    alert(ret)
    ret=formatdatetime("2002-5-14")
    alert(ret)
    ret=formatdatetime("2002-11-14")
    alert(ret)
    </script>
      

  2.   

    或者
    <script>
    function formatdatetime(str){
    var d=new Date(str.replace(/-/,"/"))
    var m=String((d.getMonth()+1)/100).split(".")[1]
    return d.getFullYear()+"-"+m+"-"+String(d.getDate()/100).split(".")[1];
    }
    ret=formatdatetime("2002-5-2")
    alert(ret)
    ret=formatdatetime("2002-5-14")
    alert(ret)
    ret=formatdatetime("2002-11-14")
    alert(ret)
    </script>