JS日期处理

关于日期的常见操作  
  http://community.csdn.net//Expert/TopicView2.asp?id=4360247&datebasetype=now  
  js   FAQ贴  
  http://community.csdn.net//Expert/TopicView2.asp?id=4356360&datebasetype=now  
  DHTML手册,js手册,dom手册下载  
  http://community.csdn.net//Expert/TopicView2.asp?id=4356325&datebasetype=now

 

综合整理之后的PowerDate   .方便处理常日公历日期操作.  
   
  <script   language="JavaScript">  
  <!--  
  function   PowerDate(){  
  /*   名称:   PowerDate    
    *   版本:   v   Beta   1.0  
    *   作者:   梅雪香(meixx)  
    *   说明:   PowerDate   基本实现了较常见的对于日期的操作,但不包括农历.  
    *   注意:   您可以随意复制此 程序 ,请保留该说明.您可以随意更改此程序,如发现有BUG或者有改进请  
    *               mail给我一份,我的E-mail:wy_hd@163.com   或者在CSDN给我留言,我的ID是:zhaoxiaoyang  
    */    
  //日期对象  
  this.date=null;  
  //格式化时是否加零补位标志,默认为不加零false  
  this.isFmtZero=false;  
  this.weekArr=[["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],  
      ["SUN","MON","TUR","WED","THU","FRI","SAT"]];  
  this.monthArr=["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"];  
  //初始化日期对象  
  switch(arguments.length){  
  case   0:  
  this.date   =   new   Date();  
  break;  
  case   1:    
  //如果为日期类型  
  if(typeof(arguments[0])   ==   "object"   &&   (/Date/.test(arguments[0].constructor))){  
  this.date   =   arguments[0];  
  }else{//字符串类型或者毫秒数  
  var   reg   =   /^(/d{2,4})/D+(/d{1,2})/D+(/d{1,2})$/;  
  var   str   =   arguments[0].replace(//s/g,"");  
  str   =   str.replace(reg,"$1/$2/$3");  
  this.date   =   new   Date(str);  
  }  
  break;  
  case   2:   //年月----此时初始化为年月的1号  
  this.date   =   new   Date(arguments[0],arguments[1]-1,1);  
  break;  
  case   3:   //年月日  
  this.date   =   new   Date(arguments[0],arguments[1]-1,arguments[2]);  
  break;  
  case   6:   //年月日时分秒  
  this.date   =   new   Date(arguments[0],arguments[1]-1,arguments[2],arguments[3],arguments[4],arguments[5]);  
  break;  
  case   7:   //年月日时分秒毫秒  
  this.date   =   new   Date(arguments[0],arguments[1]-1,arguments[2],arguments[3],arguments[4],arguments[5],arguments[6]);  
  break;  
  default:   this.date   =   new   Date("1970/1/1");   break;  
  }  
  //初始化失败处理  
  if(typeof(this.date)   !=   "object"   ||   !(/Date/.test(this.date.constructor)))  
  throw   (new   Error(-1,   '构造PowerDate 方法 失败,检查输入参数!'));  
   
  this.getDate   =   function   (){  
  return   this.date;  
  }  
  this.getFullYear=function(){  
  return   this.date.getFullYear();  
  };  
  this.getYear=function(){  
  return   this.date.getYear();  
  };  
  this.getMonth=function(){  
  return   this.frmWithZero(this.date.getMonth()+1);  
  };  
  this.getDay=function(){  
  return   this.frmWithZero(this.date.getDate());  
  };  
  this.getHour=function(){  
  return   this.frmWithZero(this.date.getHours());  
  };  
  this.getMinute=function(){  
  return   this.frmWithZero(this.date.getMinutes());  
  };  
  this.getSecond=function(){  
  return   this.frmWithZero(this.date.getSeconds());  
  };  
  this.getMillisecond=function(){  
  var   ss=this.date.getMilliseconds();  
  if(this.isFmtZero==true   &&   ss<10)  
  return   "00"+ss;  
  else   if(this.isFmtZero==true   &&   ss<100)  
  return   "0"+ss;  
  else   return   ss;  
  };  
  this.getWeek=function(){  
  return   this.date.getDay();  
  };  
  this.setIsFmtZero=function(val){  
  this.isFmtZero=val;  
  };  
  this.frmWithZero   =   function(num){  
  if(this.isFmtZero==true   &&   num<10)  
  return   "0"+num;  
  else   return   num;  
  }  
  /*  
    *   功能 :根据输入表达式返回日期字符串  
    *   参数:dateFmt:字符串,由以下结构组成          
    *             yy:长写年,YY:短写年mm:数字月,MM:英文月,dd:日,hh:时,  
    *             mi:分,ss秒,ms:毫秒,we:汉字星期,WE:英文星期.  
  */  
  this.getString=function(dateFmt){  
  if(typeof(dateFmt)   !=   "string"   )  
  throw   (new   Error(-1,   'getString()方法需要字符串类型参数!'));  
  var   str=dateFmt;  
  str=str.replace(/yy/g,this.getFullYear());  
  str=str.replace(/YY/g,this.getYear());  
  str=str.replace(/mm/g,this.getMonth());  
  str=str.replace(/MM/g,this.monthArr[this.getMonth()-1]);  
  str=str.replace(/dd/g,this.getDay());  
  str=str.replace(/hh/g,this.getHour());  
  str=str.replace(/mi/g,this.getMinute());  
  str=str.replace(/ss/g,this.getSecond());  
  str=str.replace(/ms/g,this.getMillisecond());  
  str=str.replace(/we/g,this.weekArr[0][this.getWeek()]);  
  str=str.replace(/WE/g,this.weekArr[1][this.getWeek()]);  
  return   str;  
  };  
   
  /*   功能   :   返回与某日期相距N天(N个24小时)的日期  
    *   参数   :   num   number类型   可以为正负整数或者浮点数,默认为1;  
    *                 type   0(秒)   or   1(天),默认为秒  
    *   返回   :   新的PowerDate类型  
    */  
  this.dateAfter=function(num,type){  
  num   =   (num   ==   null?1:num);  
  if(typeof(num)!="number")   throw   new   Error(-1,"dateAfterDays(num)参数为数值类型.");  
  var   iType   =   (type==null?0:type);  
  var   arr   =   [1000,86400000];  
  var   dd   =   this.date.valueOf();  
  dd   +=   num*arr[type];  
  this.date=new   Date(dd);  
  return   this;  
  };  
  //判断是否是闰年,返回true   或者   false  
  this.isLeapYear   =   function   (){  
  var   year   =   this.getFullYear();  
  return   (0==year%4   &&   ((year   %   100   !=   0)||(year   %   400   ==   0)));  
  };  
   
  //返回该月天数  
  this.getDaysOfMonth   =   function   (){  
  return   (new   Date(this.getFullYear(),this.getMonth(),0)).getDate();  
  };  
   
  //转换成大写日期(中文)  
  this.getChinaDate   =     function(){  
  var   year   =   this.getFullYear();  
  var   month=   this.getMonth();  
  var   day   =   this.getDay();  
  var   arrNum   =   ["零","一","二","三","四","五","六","七","八","九","十","十一","十二"];  
  var   strTmp="";  
  for(var   i=0,j=year.length;i<j;i++){  
  strTmp   +=   arrNum[year.charAt(i)];  
  }  
  strTmp   +=   "年";  
  strTmp   +=   arrNum[month]+"月";  
  if(day<10)  
  strTmp   +=   arrNum[day];  
  else   if   (day   <20)  
  strTmp   +=   "十"+arrNum[day-10];  
  else   if   (day   <30   )  
  strTmp   +=   "二十"+arrNum[day-20];  
  else    
  strTmp   +=   "三十"+arrNum[day-30];  
  strTmp   +=   "日";  
  return   strTmp;  
  };  
   
  //日期比较函数,参数为pd类型如this日期晚于参数:1,相等:0   早于:   -1  
  this.dateCompare   =   function(pd){  
  if(typeof(pd)   !=   "object"   ||   pd.toString()   !=   "PowerDate")  
    throw   new   Error(-1,"dateCompare(pd)的pd参数为PowerDate类型.");  
  var   d   =   this.date.getTime()   -   pd.getDate().getTime();  
  return   d>0?1:(d==0?0:-1);  
  }  
  /*功能:返回两日期之差  
    *参数:pd       PowerDate对象  
    *         type:   返回类别标识.yy:年,mm:月,ww:周,dd:日,hh:小时,mi:分,ss:秒,ms:毫秒  
    *         intOrFloat   :返回整型还是浮点型值   0:整型,不等于0:浮点型  
    *         output   :   输出 提示 ,如:时间差为#周!  
    */  
  this.calDateDistance   =   function   (pd,type,intOrFloat,output){  
  if(typeof(pd)   !=   "object"   ||   pd.toString()   !=   "PowerDate")  
    throw   new   Error(-1,"calDateDistance(pd,type,intOrFloat)的pd参数为PowerDate类型.");  
  if(!((new   RegExp(type+",","g")).test("yy,mm,ww,dd,hh,mi,ss,ms,")))  
    throw   new   Error(-1,"calDateDistance(pd,type,intOrFloat,output)的type参数为非法.");  
  var   iof   =   (intOrFloat==null?0:intOrFloat);  
  var   miSecMain   =   this.date.valueOf();  
  var   miSecSub     =   pd.getDate().valueOf();  
  var   num=0;  
  switch(type){  
  case   "yy":   num   =   this.getFullYear()   -   pd.getFullYear();   break;  
  case   "mm":   num   =   (this.getFullYear()   -   pd.getFullYear())*12+this.getMonth()-pd.getMonth();   break;  
  case   "ww":   num   =   this.fmtRtnVal((miSecMain-miSecSub)/7/86400000,iof);   break;  
  case   "dd":   num   =   this.fmtRtnVal((miSecMain-miSecSub)/86400000,iof);   break;  
  case   "hh":   num   =   this.fmtRtnVal((miSecMain-miSecSub)/3600000,iof);   break;  
  case   "mi":   num   =   this.fmtRtnVal((miSecMain-miSecSub)/60000,iof);   break;  
  case   "ss":   num   =   this.fmtRtnVal((miSecMain-miSecSub)/1000,iof);   break;  
  case   "ms":   num   =   (miSecMain-miSecSub);break;  
  default:     break;  
  }  
  if(output)  
  return   output.replace(/#/g,num);  
  else   return   num;  
  };  
  //返回整数或者两位小数的浮点数  
  this.fmtRtnVal   =   function   (val,intOrFloat){  
  //alert(val);  
  return   (intOrFloat   ==   0   ?   Math.floor(val)   :   parseInt(val*100)/100);  
  };  
  //重载toString   方法,用来判断是否为PowerDate对象  
  this.toString=function(){   return   "PowerDate"};  
   
  }  
   
  var   d=   new   PowerDate(new   Date());//实例化一个PowerDate对象  
  d.setIsFmtZero(true);//设置为用0补位输出  
  //alert(d.getString("yy-mm-dd   hh:mi:ss.ms"));  
  //alert(d.getString("ms.ss:mi:hh   dd-mm-yy"));  
  alert(d.calDateDistance(new     PowerDate("2005/5/31"),"dd"));//输出日期字符串  
   
  //-->  
  </script>  

 

 

 

常在js版转,发现有很多问题问来问去N多遍.于是有这个想法,把常见的问题汇总成一个贴子.  
  我个人所拥有的代码相当有限,所以要大家群策群力共同来维护这个帖子.  
  回帖时注意:  
      请先查看前面回帖,已经避免发过的东西重复发布.  
      尽可能一次性尽可能多的贴代码,不要帖子很长但内容很少.  
      要加比较明朗的注释,不要让人望而怯步,不知所云.  
   
  如果该贴有较好的效应,请大梅同志开恩置顶.

JS   对   cookie   操作  
  function   setCookie(name,value)  
  {  
      var   Days   =   30;   //此   cookie   将被保存   30   天  
      var   exp     =   new   Date();         //new   Date("December   31,   9998");  
      exp.setTime(exp.getTime()   +   Days*24*60*60*1000);  
      document.cookie   =   name   +   "="+   escape(value)   +";expires="+   exp.toGMTString();  
  }  
  function   getCookie(name)  
  {  
      var   arr   =   document.cookie.match(new   RegExp("(^|   )"+name+"=([^;]*)(;|$)"));  
      if(arr   !=   null)   return   unescape(arr[2]);   return   null;  
  }  
  function   delCookie(name)  
  {  
      var   exp   =   new   Date();  
      exp.setTime(exp.getTime()   -   1);  
      var   cval=getCookie(name);  
      if(cval!=null)   document.cookie=name   +"="+cval+";expires="+exp.toGMTString();  
  }  
   
   
  <script   type="text/javascript">  
  var   _st   =   window.setTimeout;  
   
  /*重载window.setTimeout函数,引用的函数可以带参数*/  
  window.setTimeout   =   function(fRef,   mDelay)   {  
    if(typeof   fRef   ==   'function'){  
      var   argu   =   Array.prototype.slice.call(arguments,2);  
  alert(typeof(argu));  
      var   f   =   (function(){   fRef.apply(null,   argu);   });  
      return   _st(f,   mDelay);  
    }  
    return   _st(fRef,mDelay);  
  }  
   
  function   test(x){  
    alert(x);  
  }  
  window.setTimeout(test,3000,'fason');  
  </script>  
   
   
  <script   language=javascript>  
  <!--  
  /*@cc_on   @*/  
  /*@if   (@_win32   &&   @_jscript_version>=5)  
  function   window.confirm(str)  
  {  
          str=str.replace(//'/g,   "'&chr(39)&'").replace(//r/n|/n|/r/g,   "'&VBCrLf&'");  
          execScript("n   =   msgbox('"+   str   +"',   257,   '自定的的   confirm')",   "vbscript");  
          return(n==1);  
  }  
  @end   @*/  
  alert(confirm('sure?'));  
  //   -->  
  </script>  
   
   
  //两端去空格函数  
  function   trim(str)   {  
  return   str.replace(/(^/s*)|(/s*$)/g,"");  
  }  
   
   
  <script>  
  //为Number增加length方法  
  Number.prototype.length   =   function()  
  {  
  return   String(this).length;  
  }  
   
  alert((11).length())  
  </script>  
   
  Ms   XmlDom   异步装载Xml文件    
  放在这里,算作是资源备份吧。  
   
  <script>  
  var   xmldoc;  
  function   Load(){  
      xmldoc   =   new   ActiveXObject("Msxml2.DOMDocument");  
      xmldoc.onreadystatechange   =   CheckState;  
      xmldoc.resolveExternals   =   false;  
      xmldoc.load(URL.value);  
  }  
  function   CheckState(){  
      var   state   =   xmldoc.readyState;  
      RESULTS.innerHTML   +=   "加载状态   =   "   +   state   +   "<BR>"  
      if   (state   ==   4){  
          var   err   =   xmldoc.parseError;  
          if   (err.errorCode   !=   0)  
              RESULTS.innerHTML   +=   err.reason   +     "<BR>"  
          else  
          {  
            RESULTS.innerHTML   +=   "加载成功。"   +     "<BR>"  
            alert(xmldoc.xml)  
            }  
      }    
  }    
  </script>  
  URL:   <input   type=text   size=60   id=URL   value="http://dotnet.aspx.cc/Rss.aspx">  
  <input   type=button   value="正在XML"   οnclick="Load()">  
  <div   id=RESULTS   style="color:red;   font-weight:bold;"></div></script>  
   
   
  //带中文字符串长度,一个中文字长度为2  
  String.prototype.lenB   =   function(){return   this.replace(/[^/x00-/xff]/g,"**").length;}  
    document.all.tes1.value.lenB();  
   
   
   
  预判断一下链接URL是否可用  
   
  <script   language="javascript">  
  function   getURL(url)  
  {  
          var   xmlhttp   =   new   ActiveXObject("Microsoft.XMLHTTP");  
          xmlhttp.open("GET",url,false);  
          xmlhttp.send();  
          if   (xmlhttp.readyState==4)  
              alert((xmlhttp.Status==200)?"存在":"不存在");  
  }  
  //user   like   this:  
  getURL("http://localhost/1.asp")  
  </script>  
   
   
  //将数字转换成三位逗号分隔的样式  
  function   formatNum(s)    
  {  
      if(!/^(/+|-)?/d+(/./d+)?$/.test(num)){alert("wrong!");   return   num;}  
      var   re   =   new   RegExp().compile("(//d)(//d{3})(,|//.|$)");  
      num   +=   "";   while(re.test(num))  
          num   =   num.replace(re,   "$1,$2$3")  
      return   num;  
  }  
  alert(formatNum(-12345678.123));  
  alert(formatNum("12345678.123"));  
  alert(formatNum("10000000000000000000000000000000000000000"));  
   
   
   
  格式化日期:yyyy-m-d   to   yyyy-mm-dd  
   
  <SCRIPT   LANGUAGE="JavaScript">  
  <!--  
  var   str   =   "2005-3-2";   //2005-03-02  
  var   str   =   "2005-3-22";   //2005-03-02  
  str   =   str.replace(/(/D)(/d)(?=/D|$)/g,   "$10$2");  
  alert(str);  
  //-->  
  </SCRIPT>  
   
   
  表格中的行删除功能,用checkbox选择的  
  <script   language="JavaScript">  
  <!--  
  var   curRow=null;  
  function   selectRow(tr1){  
  if(curRow)  
  curRow.bgColor="#FFFFFF";  
  tr1.bgColor="e7e7e7";  
  curRow=tr1;  
  }  
  function   delTr(){  
  var   chks=document.getElementsByName("chkDelete");  
  var   tb=document.getElementById("tbContent");  
  for(var   i=chks.length-1;i>=0;i--){  
  if(chks[i].checked){  
  tb.deleteRow(i);  
  }  
  }  
  }  
  //-->  
  </script>  
  <div   align="center"   style="overflow:auto;   width:400;   height:300px   "   id="divVector">  
  <table   id="tbContent"   border=1   width="300">  
  <script   language="JavaScript">  
  <!--  
  for(var   i=0;i<25;i++)  
  document.write('<tr   height=20   οnmοuseοver="selectRow(this)"><td   algin="center"    
   
  width="20%"><input   type="checkbox"   name="chkDelete"></td><td   width="80%"    
   
  align="center">'+i+'</td></tr>');  
  //-->  
  </script>  
  </table>  
  </div>  
  <input   type="button"   value="   删除选中的行   "   οnclick="delTr()">  
   
   
  yyyy-mm-dd格式日期完整校验加 提示  
  <script   language="JavaScript">  
  <!--  
  function   CheckDate(strDate){  
  var   reg=/^(/d{4})([-])(/d{2})([-])(/d{2})/;  
  if(!reg.test(strDate)){  
  alert("日期格式不正确!/n正确格式为:2004-01-01");  
  return   false;  
  }  
  var   ss=strDate.split("-");  
  var   year=ss[0];  
  var   month=ss[1];  
  var   date=ss[2];  
  if(!checkYear(year)){return   false;}  
  if(!checkMonth(month)){return   false;}  
  if(!checkDate(year,month,date)){return   false;}  
  return   true;  
  }  
  function   checkYear(year){  
  if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!");   return   false;}  
  else   if(parseInt(year)<1950   ||   parseInt(year)   >2050){   alert("年份应该在1950-2050之间  
   
  !");   return   false}  
  else   return   true;  
  }  
  function   checkMonth(month){  
  if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!");   return   false;}  
  else   if(parseInt(month)<1   ||   parseInt(month)   >12){   alert("月份应该在1-12之间!");    
   
  return   false}  
  else   return   true;  
  }  
  function   checkDate(year,month,date){  
  var   daysOfMonth=CalDays(parseInt(year),parseInt(month));  
  if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!");   return   false;}  
  else   if(parseInt(date)<0||parseInt(date)>daysOfMonth){   alert("日期应该在1  
   
  -"+daysOfMonth+"之间!");   return   false;}  
  else   return   true;  
  }  
  function   CalDays(year,month){  
  var   date=   new   Date(year,month,0);  
  return   date.getDate();  
  }  
  function   isLeapYear(year){  
  if((year   %4==0   &&   year   %100!=0)   ||   (year   %400==0))   return   true;  
  else   return   false;  
  }  
  alert(CheckDate("2007-02-29"));  
  //-->  
  </script>  
   
   
  <script   language="JavaScript">  
  <!--  
  /*   函数名称   :   dateAfterDays  
    *   函数功能   :   返回与某日期相距N天(N个24小时)的日期  
    *   函数参数   :   num   number类型   可以为正负整数或者浮点数  
    *   函数返回   :   新的日期  
    *   调用方法   :   dateObject.dateAfterDays(num);  
    */  
  Date.prototype.dateAfterDays=function(num){  
  if(typeof(num)!="number")   throw   new   Error("Date(num)参数为数值类型.",-1);  
  var   date   =   this.valueOf();  
  date   +=   num*24*3600*1000;  
  return   new   Date(date);  
  }  
  var   dd=   new   Date();  
  alert(dd.dateAfterDays(1.5));  
  //-->  
  </script>  
   
   
  类似CSDN感兴趣社区配置页面中的checkbox选择的功能  
  <script   language="JavaScript">  
  <!--  
  function   chkClk(obj){  
  var   chks=document.getElementsByName(obj.name);  
  if(obj.flag=="main"){  
  for(var   i=1;i<chks.length;i++)  
  chks[i].checked=obj.checked;  
  }  
  else{  
  for(var   i=1;i<chks.length;i++)  
  if(chks[i].checked==false){  
  chks[0].checked=false;  
  break;  
  }  
  else{  
  if(i==chks.length-1)   chks[0].checked=true;  
  }  
  }  
  }  
  //-->  
  </script>  
   
  <input   type="checkbox"   οnclick="chkClk(this)"   name="type1"   flag="main">typetext  
  <li><input   type="checkbox"   οnclick="chkClk(this)"   name="type1">typetext</li>  
  <li><input   type="checkbox"   οnclick="chkClk(this)"   name="type1">typetext</li>  
  <br><br>  
  <input   type="checkbox"   οnclick="chkClk(this)"   name="type2"   flag="main">typetext  
  <li><input   type="checkbox"   οnclick="chkClk(this)"   name="type2">typetext</li>  
  <li><input   type="checkbox"   οnclick="chkClk(this)"   name="type2">typetext</li>

 

JS时间处理

时间对象是一个我们经常要用到的对象,无论是做时间输出、时间判断等操作时都与这个对象离不开。除开JavaScript中的时间对象外,在VbScript中也有许多的时间对象,而且非常好用。下面还是按照我们的流程来进行讲解。

它是一个内置对象——而不是其它对象的属性,允许用户执行各种使用日期和时间的过程。
 方法:分为得到时间方法、设置时间方法和转换时间方法

得到时间方法:
  getDate() 查看Date对象并返回日期
  getDay() 返回星期几
  getHours() 返回小时数
  getMinutes() 返回分钟数
  getMonth() 返回月份值
  getSeconds() 返回秒数
  getTime() 返回完整的时间
  getYear() 返回年份
  

设置时间方法:
  setDate() 改变Date对象的日期
  setHours() 改变小时数
  setMinutes() 改变分钟数
  setMonth() 改变月份
  setSeconds() 改变秒数
  setTime() 改变完整的时间
  setYear() 改变年份

转换时间方法:
  toGMTString() 把Date对象的日期(一个数值)转变成一个GMT时间字符串,返回类似下面的值:Weds,15 June l997 14:02:02 GMT(精确的格式依赖于计算机上所运行的操作系统而变)
  toLocaleString() 把Date对象的日期(一个数值)转变成一个字符串,使用所在计算机上配置使用的特定日期格式
  UTC() 使用Date UTC(年、月、日、时、分、秒),以自从1970年1月1日00:00:00(其中时、分、秒是可选的)以来的毫秒数的形式返回日期
几个需要注意的地方:

1、得到日期和年和设置日期和年时间,其中很怪的问题就是不能对月份进行设置(比较的怪):
<script language="javascript">
d = new Date();
alert(d.toLocaleString());
d.setDate(25);
alert(d.toLocaleString());
d.setYear(2000);
alert(d.toLocaleString());
</script>

2、获得年的时候最好用getFullYear()方法来做

3、由于针对月份,JS是从0开始的,因此需要对月份进行操作时要加1



下面是几个关于时间的经典而且经常会用到的例子,希望对大家会有提高的。谢谢继续关注该帖子。。。

1、将2005-8-5转换成2005-08-05格式
<script language="javascript">
var strDate = '2005-8-5';
window.alert(strDate.replace(//b(/w)/b/g, '0$1'));
</script>

2、得到间隔天数
<script type="text/javascript">
<!--
alert("间隔天数为:"+(new Date('2005/8/15')-new Date('2003/9/18'))/1000/60/60/24+"天")
//-->
</script>

3、得到间隔时间
<script>
var d1=new Date("2004/09/16 20:08:00");
var d2=new Date("2004/09/16 10:18:03");
var d3=d1-d2;
var h=Math.floor(d3/3600000);
var m=Math.floor((d3-h*3600000)/60000);
var s=(d3-h*3600000-m*60000)/1000;
alert("相差"+h+"小时"+m+"分"+s+"秒");
</script>

4、得到今天的日期
<script language="javascript">
d = new Date();
alert(d.getFullYear()+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日");
</script>

6、数字日期转汉字
<html>
<head>
<title> New Document </title>
</head>

<body>

<script language=javascript>
Date.prototype.getRead = function()
{
var values = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九");
var returnValue, temp;
returnValue = this.getYear()+"年";
temp = (this.getMonth()+1)+"月"+this.getDate()+"日";
temp = temp.replace(/(/d)(/d)/g,"$1十$2").replace(/1十/g,"十").replace(/十0/g,"十");
returnValue += temp;
returnValue = returnValue.replace(//d/g, function(sts){return values[parseInt(sts)]});
return returnValue;
}

var t=new Date();
document.write(t.getRead());
</script>
</body>
</html>

7、得到前N天或后N天的日期
方法一:
<script type="text/javascript">
function showdate(n)
{
var uom = new Date(new Date()-0+n*86400000);
uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate();
return uom;
}

window.alert("今天是:"+showdate(0));
window.alert("昨天是:"+showdate(-1));
window.alert("明天是:"+showdate(1));
window.alert("10天前是:"+showdate(-10));
window.alert("5天后是:"+showdate(5));
</script>
方法二:
<script type="text/javascript">
function showdate(n)
{
var uom = new Date();
uom.setDate(uom.getDate()+n);
uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate();
return uom;
}

window.alert("今天是:"+showdate(0));
window.alert("昨天是:"+showdate(-1));
window.alert("明天是:"+showdate(1));
window.alert("10天前是:"+showdate(-10));
window.alert("5天后是:"+showdate(5));
</script>
方法三(不好意思,这个市用vsscript做的):
<script language="vbscript">
function showdate(n)
showdate=dateadd("d",date(),n)
end function
msgbox "今天是:"&showdate(0)
msgbox "昨天是:"&showdate(-1)
msgbox "明天是:"&showdate(1)
msgbox "十天前是:"&showdate(-10)
msgbox "五天后是:"&showdate(5)
</script>
方法四:
<script language="Javascript">
Date.prototype.getDays=function(){
var _newDate=new Date();
_newDate.setMonth(_newDate.getMonth()+1);
_newDate.setDate(0);
$_days=_newDate.getDate();
delete _newDate;
return $_days;
}
function showdate(n)
{
var uom = new Date();
uom.setDate(uom.getDate()+n);
uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate()+"/n星期"+('天一二三四五六'.charAt(uom.getDay()))+"/n本月有"+ uom.getDays()+"天";
return uom;
}

window.alert("今天是:"+showdate(0));
window.alert("昨天是:"+showdate(-1));
window.alert("明天是:"+showdate(1));
window.alert("10天前是:"+showdate(-10));
window.alert("5天后是:"+showdate(5));
</script>

 

--------------------------------------------------------------------

DWASearch Form JS header



function SetValue()
{
var todays = new Date(); 
var years = todays.getFullYear(); 
var lastyears=years-1;
var months = todays.getMonth()+1; 
var mdays = todays.getDate(); 
var endDates = years + "-" + months + "-" + mdays;  /endDates
var stDates = lastyears + "-" + months + "-" + mdays; /stDates

document.all.endDate.value=endDates;
document.all.startDate.value=stDates;

var pasttwoyears=years-2;
var pasttwoyeardate=pasttwoyears+ "-" + months + "-" + mdays;
var pastthreeyears=years-3;
var pastthreeyeardate=pastthreeyears+ "-" + months + "-" + mdays;

document.all.Today.value=endDates;
document.all.Lasttwelvemonths.value=stDates;
document.all.Pasttwoyear.value=pasttwoyeardate;
document.all.Pastthreeyear.value=pastthreeyeardate;
 
//last week
function showdate(n) 
{ 
var uom = new Date(new Date()-0+n*86400000); 
uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate(); 
return uom; 
} 
document.all.PastWeek.value=showdate(-7); 
 
// .Lastthreemonths. Lastsixmonths
function makeArray() {
    for (i = 0; i=beforedaycount){//如果本月天数大于前一个月   
              if(today.getDate()>=beforedaycount){//如果当前的天数大于上个月的天数,那么上个月返回末   
            before.setDate(beforedaycount);   
      }   
      else{//否则返回上个月相同号数的一天   
            before.setDate(today.getDate());   
      }   
        }   
        else{   
              if(today.getDate()   ==   todaydaycount){//如果到了本月末尾,返回上月的最后一天   
            before.setDate(beforedaycount);   
      }   
      else{   
            before.setDate(today.getDate())//否则返回上个月相同号数的一天   
      }   
                
        }         
         return before;
  }
    
   
   
 }

 /*
  
 
 Date.prototype.addMonth = function(num){if(!isNaN(num))this.setMonth(this.getMonth() + parseInt(num));return this;}
//创建date
var datedd = new Date();
//date.addMonth(1);//加1个月
//date.addMonth(10);//加10个月
//date.addMonth(-1);//减1个月
document.all.Lastthreemonths.value=datedd.addMonth(-3);
document.all.Lastsixmonths.value=datedd.addMonth(-3); 

  function  getNextYear() 
{ 
        var  d  =  new  Date(); 
        return  new  Date(d.getFullYear(),d.getMonth()-1,d.getDate()); 
} 

function makeArray() {
    for (i = 0; i

===================again==============================

function SetValue()
{
var todays = new Date();
var years = todays.getFullYear();
var lastyears=years-1;
var months = todays.getMonth()+1;
var mdays = todays.getDate();
var endDates = years + "-" + months + "-" + mdays;  /endDates
var stDates = lastyears + "-" + months + "-" + mdays; /stDates

document.all.endDate.value=endDates;
document.all.startDate.value=stDates;

var pasttwoyears=years-2;
var pasttwoyeardate=pasttwoyears+ "-" + months + "-" + mdays;
var pastthreeyears=years-3;
var pastthreeyeardate=pastthreeyears+ "-" + months + "-" + mdays;

document.all.Today.value=endDates;
document.all.Lasttwelvemonths.value=stDates;
document.all.Pasttwoyear.value=pasttwoyeardate;
document.all.Pastthreeyear.value=pastthreeyeardate;
 
//last week
function showdate(n)
{
var uom = new Date(new Date()-0+n*86400000);
uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate();
return uom;
}
document.all.PastWeek.value=showdate(-7);
 
// .Lastthreemonths. Lastsixmonths
function makeArray() {
    for (i = 0; i<makeArray.arguments.length; i++)
        this[i + 1] = makeArray.arguments[i];
}
 var months = new makeArray('1','2','3','4',
                           '5','6','7','8','9',
                           '10','11','12');
 
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function monthsahead(noofmonths) {
    var today = new Date();
    var date = new Date(today.getYear(),today.getMonth() + noofmonths,today.getDate(),today.getHours(),today.getMinutes(),today.getSeconds())
   return y2k(date.getYear())+'-'+months[date.getMonth() + 1]+'-'+date.getDate();
}
document.all.Lastthreemonths.value=monthsahead(-3);
document.all.Lastsixmonths.value=monthsahead(-6);
 

var BeforeMonthDay=getBeforeMonthDay();
var BeforeMonthDayyears = BeforeMonthDay.getFullYear(); 
var BeforeMonthDaymonths = BeforeMonthDay.getMonth()+1;
var BeforeMonthDaydays = BeforeMonthDay.getDate();
var BeforeMonthDayre = BeforeMonthDayyears + "-" + BeforeMonthDaymonths + "-" + BeforeMonthDaydays;  /endDates
document.all.PastMonths.value=BeforeMonthDayre;  

  function     getBeforeMonthDay(){  
        var   msecondsPerMinute   =   1000   *   60;  
        var   msecondsPerHour   =   msecondsPerMinute   *   60;  
        var   msecondsPerDay   =   msecondsPerHour   *   24;  
        var   today   =   new   Date();//今天的日期
 
                today.setMonth(today.getMonth());  
                //today.setDate(30);  
                  
var   temptoday   =   new   Date(today);//用来计算的这个月的1号  
                 temptoday.setDate(1);  
                     var   before   =   new   Date(today);//用来保存前一个月的日期  
                before.setMonth(today.getMonth()-1);  
        var   tempbefore   =   new   Date(before);//用来计算的前一个月的1号                
        tempbefore.setDate(1);  
        var   next   =   new   Date(today);//下个月,用来计算本月有多少天  
                next.setMonth(today.getMonth()+1);  
        next.setDate(1);  
   
        var   beforedaycount   =Math.floor((temptoday-tempbefore)/msecondsPerDay);//计算前一个月天数  
        var   todaydaycount   =Math.floor((temptoday-tempbefore)/msecondsPerDay);//计算本月差额天数  
        if(todaydaycount>=beforedaycount){//如果本月天数大于前一个月  
              if(today.getDate()>=beforedaycount){//如果当前的天数大于上个月的天数,那么上个月返回末  
            before.setDate(beforedaycount);  
      }  
      else{//否则返回上个月相同号数的一天  
            before.setDate(today.getDate());  
      }  
        }  
        else{  
              if(today.getDate()   ==   todaydaycount){//如果到了本月末尾,返回上月的最后一天  
            before.setDate(beforedaycount);  
      }  
      else{  
            before.setDate(today.getDate())//否则返回上个月相同号数的一天  
      }  
               
        }        
         return before;
  }
    
 }

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值