如字符串“2010-12-07”,直接用Date()对象无法转换,需要特定格式。目前我是自己将字符串拆成年、月、日的数值,再用Date()转换。有什么好的办法能让Date()直接识别“YYYY-MM-DD”吗?

解决方案 »

  1.   

    var t = new Date(d.split("-").join(","));
      

  2.   

    Date.prototype.format = function(format)
     {
         var o ={
                'M+' : this.getMonth()+1, //month
                'd+' : this.getDate(),    //day
                'h+' : this.getHours(),   //hour
                's+' : this.getSeconds(), //second
                'm+' : this.getMinutes(), //minute
                'q+' : Math.floor((this.getMonth()+3)/3),  //quarter 
                'S' : this.getMilliseconds() //millisecond     
            };
           if(/(y+)/.test(format)){format=format.replace(RegExp.$1,(this.getFullYear()+'').substr(4 - RegExp.$1.length));}
          for(var k in o){     
                 if(new RegExp('('+ k +')').test(format)){format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ('00'+ o[k]).substr((''+ o[k]).length));}}
         return format; 
     };new Date().format('yyyy年MM月dd日hh时mm分');
      

  3.   

    自己扩展吧。
    <script type="text/javascript">
    Date.prototype.fromString = function(strDate,sep){
    var arr = strDate.split(sep);
    this.setFullYear(arr[0]||"",arr[1]||"",arr[2]||"");
    }
    var date = new Date();
    date.fromString("2010-11-7","-");
    alert(date.getDate());
    </script>