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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值