JavaScript 现有日期上加上天数月数年数周数的运算

2016-02-19 15:50 29 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的JavaScript 现有日期上加上天数月数年数周数的运算,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - Web开发 】

form name="form"

TABLE
TR
    TD现在的日期:/TD
    TDinput type="text" name="u" value="2009-01-01"/TD
/TR
TR
    TD要加的天数:/TD
    TDINPUT TYPE="text" name="entry" id="d" VALUE="" onkeyup="calculate('d')"/TD
/TR
TR
    TD要加的周数:/TD
    TDINPUT TYPE="text" name="entry" id="w" VALUE="" onkeyup="calculate('w')"/TD
/TR
TR
    TD要加的月数:/TD
    TDINPUT TYPE="text" name="entry" id="m" VALUE="" onkeyup="calculate('m')"/TD
/TR
TR
    TD要加的年数:/TD
    TDINPUT TYPE="text" name="entry" id="y" VALUE="" onkeyup="calculate('y')"/TD
/TR
TR
    TD结果:/TD
    TDinput name="twice"/TD
/TR
!--TR
    TD要加的日期2:/TD
    TDinput type="text" name="u" value="2009/01/01"/TD
/TR
TR
    TD结果2:/TD
    TDinput name="twice"/TD
/TR--
/TABLE
/form
script language="JavaScript"
function   DateAdd(strInterval,   NumDay,   dtDate)   {  
  var   dtTmp   =   new   Date(dtDate);  
  if   (isNaN(dtTmp))   dtTmp   =   new   Date();  
  switch   (strInterval)   {  
      case   "s":
           dtTmp  =   new   Date(Date.parse(dtTmp)   +   (1000   *   parseInt(NumDay)));
           break; 
      case   "n":
           dtTmp  =   new   Date(Date.parse(dtTmp)   +   (60000   *   parseInt(NumDay)));
           break; 
      case   "h":
           dtTmp  =   new   Date(Date.parse(dtTmp)   +   (3600000   *   parseInt(NumDay)));
           break;
      case   "d":
           dtTmp  =   new   Date(Date.parse(dtTmp)   +   (86400000   *   parseInt(NumDay)));
           break;
      case   "w":
           dtTmp  =   new   Date(Date.parse(dtTmp)   +   ((86400000   *   7)   *   parseInt(NumDay)));
           break;
      case   "m":
           dtTmp  =   new   Date(dtTmp.getFullYear(),   (dtTmp.getMonth())+parseInt(NumDay),   dtTmp.getDate(),   dtTmp.getHours(),   dtTmp.getMinutes(),   dtTmp.getSeconds());
           break;  
      case   "y":
           //alert(dtTmp.getFullYear());
           dtTmp  =   new   Date(dtTmp.getFullYear()+parseInt(NumDay),   dtTmp.getMonth(),   dtTmp.getDate(),   dtTmp.getHours(),   dtTmp.getMinutes(),   dtTmp.getSeconds());
           //alert(dtTmp);
           break;
  }
  var mStr=new String(dtTmp.getMonth()+1);
  var dStr=new String(dtTmp.getDate());
  if (mStr.length==1){
      mStr="0"+mStr;
  }
  if (dStr.length==1){
      dStr="0"+dStr;
  }
  return dtTmp.getFullYear()+"-"+mStr+"-"+dStr;
}  
/script
script language="JavaScript"

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

function calculate(type)
{
    var entry = document.getElementById(type).value;//自己判断是否合法
    var uValue=document.form.u.value;
    uValue=uValue.replace("-","/").replace("-","/");
    //alert(uValue);
    document.form.twice.value = DateAdd(type,entry,uValue);
}
/script

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1610544.html

延伸阅读
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"   <HTML   <HEAD   <TITLE New Document </TITLE   <META NAME="Generator" CONTENT="Microsoft FrontPage 5.0"   <META NAME="Author" CONTENT="zhaoweiwei"   <META NAME="Keywords" CONTENT="birthday_input"...
      </tr       <tr         <td width="14%" align="center" id="day" onclick="add_day(year.innerText,month.innerText,this.innerText)" </td         <td width="14%" align="center" id="da...
标签: Web开发
复合赋值运算符 运算符 符号 加法+=按位与&=按位或|=按位异或^=除法/=左移=取模%=乘法*=右移=减法-=无符号右移= 要求 版本信息 条件(三目)运算符 (?:) 根据条件执行两个语句中的其中一个。 test ? 语句 1 : 语句 2 参数 test 任何 Boolean 表达式。 语句1 当 test 是 true 时执行的语句。可以是复合语句。 语句2 当 test ...
        <td width="15%" align="center" id="day" onclick="add_day(year.innerText,month.innerText,this.innerText)" </td       </tr       <tr         <td width="14%" align="center" id="da...
主要思路: 对于任意2个日期比如:date_start=2006-10-1、date_end=2006-10-14 ,首先计算这连个日期之间的时间间隔(天数),然后分别对date_start 和date_end 取得它们下一个星期一的日期,这样就可以得到一个新的可以整除7的完整日期间隔(这个新的日期间隔已经把星期几的问题剔出掉了),换一种说法就是我们可以得到,这两个新的日期之...

经验教程

806

收藏

70
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部