<SCRIPT LANGUAGE="JavaScript">
<!--
function getDateByMask(s,m){
if(m=="yyyy/MM/dd")
return new Date(s.replace(/(\d+)\/(\d+)\/(\d+)/,"$1/$2/$3"))
else
return new Date(s.replace(/(\d+)\/(\d+)\/(\d+)/,"$1/$3/$2"))
}
alert(getDateByMask("2002/01/10","yyyy/MM/dd"))
alert(getDateByMask("2002/01/10","yyyy/dd/MM"))
//-->
</SCRIPT>

解决方案 »

  1.   

    用正则可以,但还是比较麻烦,语句稍长...
    .
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function getDateByMask(s,m){
    return new Date(s.replace(/(\d+)\/(\d+)\/(\d+)/,m.replace(/y+/,"$1").replace(/M+/,"$2").replace(/d+/,"$3")));
    }
    alert(getDateByMask("2002/01/10","yyyy/MM/dd"))
    alert(getDateByMask("2002/01/10","yyyy/dd/MM"))
    //-->
    </SCRIPT>
      

  2.   

    这样简单,呵呵
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function getDateByMask(s,m){
    return new Date(s.replace(/(\d+)\/(\d+)\/(\d+)/,m));
    }
    alert(getDateByMask("2002/01/10","$1/$2/$3"))
    alert(getDateByMask("2002/01/10","$1/$3/$2"))
    //-->
    </SCRIPT>
      

  3.   

    :-P 不行,mask是服务器生成到页面上的,只能是MM/dd/yyyy之类的格式。
      

  4.   

    <script>
    function getDateByMask(s,m){ var f = m.split("/"); var r = new Array(); var v = s.split("/"); for (var i=0;i<3;i++) r[f[i]] = v[i]; return new Date(r["yyyy"],r["MM"]-1,r["dd"]);
    }
    alert(getDateByMask("2002/01/10","yyyy/MM/dd"))
    alert(getDateByMask("2002/01/10","yyyy/dd/MM"))
    </script>How about This? It's By Me.^^
      

  5.   

    version 2.0,哈哈。<script>
    function getDateByMask(s,m){ var r = new Array(); for (var i=0;i<3;i++) r[m.split("/")[i]] = s.split("/")[i]; return new Date(r["yyyy"],r["MM"]-1,r["dd"]);
    }
    alert(getDateByMask("2002/01/10","yyyy/MM/dd"))
    alert(getDateByMask("2002/01/10","yyyy/dd/MM"))
    </script>
      

  6.   

    这样不好。现在通用的分隔符有/,-,. 等,有时还带分钟。只有yyyy,MM,dd,hh,mm,ss这些是通用的。