javascript 的常用方法 爲String類的對象寫getDate,getYear,getMonth方法

 先來說trim方法

//去掉前後空格

String.prototype.trim = function(){
       return this.replace(/(^/s*)|(/s*$)/g,"");
}

function test(){

   alert( "w"+"  an  ".trim()+"g")  //alert出wang

}

 

////去掉字符串開頭的零
String.prototype.toAvailableNumber = function(){
    return this.replace(/^[0]*/g,"");

 

 
 //以下三個方法是模擬Date類中的三個方法
String.prototype.getYear = function(){
 var arr = this.split(//D/) ;
 if(arr=="") return "Date is null " ;
 if(arr.length==1) return this.substring(0,4) ;
 if(arr.length!=3) return " Date Format Error";
 return arr[0] ; 
 }

 

 


 //2009123看成2009-12-3 return 11
 //2009011看成2009-01-1 return 0
 //20095121看成2009-5-12 return 4
 String.prototype.getMonth = function(){
 var arr = this.split(//D/) ;
 var dateLen = this.length ;
 if(arr.length==1){
  
  if(dateLen==6) {
   return this.substring(4,5)-1;
  }else if(dateLen==7||dateLen==8) {
   var month = this.substring(4,6).toAvailableNumber() ; 
   if((month>0)&&(month<13)){
    return month-1 ;
   }else{
     return this.substring(4,5)-1 ;
   }
  }else{
   return "Date format error" ;
  } 
 }
 if(arr.length!=3) return " Date Format Error";
 var month = arr[1].toAvailableNumber() ;
 if((month>0)&&(month<13)){
  return month-1 ;
 }else{
  return month.substring(0,1)-1 ;
 }
 }
 


 String.prototype.getDate = function(){
    var arr = this.split(//D/) ;
    var dateLen = this.length ;
    if(arr.length==1){
    if(dateLen==6) {
    return this.substring(5,6);
   }else if((dateLen==7)||(dateLen==8)){
   var month = this.substring(4,6).toAvailableNumber() ; 
   if((month>0)&&(month<13)){
    var date = this.substring(6,dateLen).toAvailableNumber() ;
    if(date<32&&date>0){
     return date;
    }else{
     return this.substring(6,7).toAvailableNumber();
    }
   }else{
    var date = this.substring(5,dateLen).toAvailableNumber() ;
    if(date<32&&date>0){
     return date;
    }else{
     var date = this.substring(5,dateLen-1).toAvailableNumber();
     if(date<32&&date>0){
      return date;
     }else{
      return this.substring(5,6).toAvailableNumber();
     }
    }
   }
  }
  return "Date format error"  ;
 }
 if(arr.length!=3) return " Date Format Error";
 var day = arr[2].toAvailableNumber() ;
 if(day<32&&day>0){
  return day;
 }else{
  return day.substring(0,1);
 }
 }

 

這樣一來就能和Date類中的方法保持一至

//寫一個靜態方法來得到二個日期間的相差毫秒數

Date.distanceTowDay=function(startDate,endDate){ 
   var st = Date.UTC(startDate.getYear(), parseInt(startDate.getMonth())+1, startDate.getDate());
   var end = Date.UTC(endDate.getYear(), parseInt(endDate.getMonth())+1, endDate.getDate());
   return end-st ;
}

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
 <script src="D://data_information//self_study//JavaScript//self//js//Date.js"></script>
  <script src="D://data_information//self_study//JavaScript//self//js//String.js"></script>
  <SCRIPT LANGUAGE="JavaScript">
  <!--
    function test(){
       var date = document.getElementById("dateTest").value;
         // 這裏的date是String對象,new Date()是日期對象        

        var distance = parseInt(Date.distanceTowDay(date,new Date()))/(3600*24*1000) ;
       

       alert(distance);
   }
 //-->
  </SCRIPT>
 </HEAD>

 <BODY>
 <INPUT TYPE="text" id="dateTest">
 <INPUT TYPE="button" id="wangbutton" VALUE="button" ONCLICK="test()">
 //你可以輸入2009-12-1 或 2009/12/1或20091201或2009121這些都能算出2009-12-1距現在有多少天
 </BODY>
</HTML>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章