用Date.parse(textfield.value)把日期转换成毫秒数再进行计算

解决方案 »

  1.   

    // 增加天
    function AddDays(date,value)
    {
    date.setDate(date.getDate()+value);
    }// 增加月
    function AddMonths(date,value)
    {
    date.setMonth(date.getMonth()+value);
    }// 增加年
    function AddYears(date,value)
    {
    date.setFullYear(date.getFullYear()+value);
    }// 是否为今天
    function IsToday(date)
    {
    return IsDateEquals(date,new Date());
    }// 是否为当月
    function IsThisMonth(date)
    {
    return IsMonthEquals(date,new Date());
    }// 两个日期的年是否相等
    function IsMonthEquals(date1,date2)
    {
    return date1.getMonth()==date2.getMonth()&&date1.getFullYear()==date2.getFullYear();
    }// 判断日期是否相等
    function IsDateEquals(date1,date2)
    {
    return date1.getDate()==date2.getDate()&&IsMonthEquals(date1,date2);
    }// 返回某个日期对应的月份的天数
    function GetMonthDayCount(date)
    {
    switch(date.getMonth()+1)
    {
    case 1:case 3:case 5:case 7:case 8:case 10:case 12:
    return 31;
    case 4:case 6:case 9:case 11:
    return 30;
    }
    //feb:
    date=new Date(date);
    var lastd=28;
    date.setDate(29);
    while(date.getMonth()==1)
    {
    lastd++;
    AddDays(date,1);
    }
    return lastd;
    }// 返回两位数的年份
    function GetHarfYear(date)
    {
    var v=date.getYear();
    if(v>9)return v.toString();
    return "0"+v;
    }// 返回月份(修正为两位数)
    function GetFullMonth(date)
    {
    var v=date.getMonth()+1;
    if(v>9)return v.toString();
    return "0"+v;
    }// 返回日 (修正为两位数)
    function GetFullDate(date)
    {
    var v=date.getDate();
    if(v>9)return v.toString();
    return "0"+v;
    }// 替换字符串
    function Replace(str,from,to)
    {
    return str.split(from).join(to);
    }// 格式化日期的表示
    function FormatDate(date,str)
    {
    str=Replace(str,"yyyy",date.getFullYear());
    str=Replace(str,"MM",GetFullMonth(date));
    str=Replace(str,"dd",GetFullDate(date));
    str=Replace(str,"yy",GetHarfYear(date));
    str=Replace(str,"M",date.getMonth()+1);
    str=Replace(str,"d",date.getDate());
    return str;
    }// 统一日期格式
    function ConvertDate(str)
    {
    str=(str+"").replace(/^\s*/g,"").replace(/\s*$/g,""); // 去除前后的空白
    var d;
    if(/^[0-9]{8}$/.test(str)) // 20040226 -> 2004-02-26
    {
    d=new Date(new Number(str.substr(0,4)),new Number(str.substr(4,2))-1,new Number(str.substr(6,2)));
    if(d.getTime())return d;
    }
    d=new Date(str);
    if(d.getTime())return d;
    d=new Date(Replace(str,"-","/"));
    if(d.getTime())return d;
    return null;
    }
      

  2.   

    js时间差函数
    <SCRIPT LANGUAGE=javascript>
    alert(addDay(-30,1));
    alert(addDay(-30,2));
    alert(addDay(-30,3));
    alert(addDay(-30,0));function addDay(days,n)
    {
    //函数说明:days日期差,n代表如下含义。 
    var my_date_ago=new Date(new Date() - days * 24 * 60 * 60 * 1000 * -1);//days天的日期
    switch (n)
    {
    case 1:
    //返回年
    return(my_date_ago.getFullYear());
    break;
    case 2: 
    //返回月
    return(my_date_ago.getMonth()+1);
    break;
    case 3: 
    //返回日
    return(my_date_ago.getDate());
    break;
    default : 
    //返回全部
    return(my_date_ago.getFullYear() + "-" + (my_date_ago.getMonth()+1) + "-" + my_date_ago.getDate());
    break;
    }  
    }
     </SCRIPT>
      

  3.   

    setDate 方法
    请参阅
    Date 对象的方法 | getDate 方法 | getUTCDate 方法 | setUTCDate 方法应用于:Date 对象
    要求
    版本 3
    设置 Date 对象中用本地时间表示的数字日期。dateObj.setDate(numDate)
    参数
    dateObj 
    必选项。任意 Date 对象。 
    numDate 
    必选项。是一个等于数字日期的数值。 
    说明
    要设置用全球标准时间 (UTC) 表示的日期值,请使用 setUTCDate 方法。如果 numDate 的值大于 Date 对象中所保存的月份的天数或者是负数。那么日期将被设置为由 numDate 减去所保存月份中天数而得到的日期。例如,如果所保存的日期是 1996 年 1 月 5 日,并且调用了方法 setUTCDate(32),那么日期将被改变为 1996 年 2 月 1 日。负数的处理方法与此相似。示例
    下面这个例子说明了 setDate 方法的用法。function SetDateDemo(newdate){
       var d, s;                  // 声明变量。
       d = new Date();            // 创建 date 对象。
       d.setDate(newdate);        // 设置 date 为 newdate。
       s = "Current setting is ";
       s += d.toLocaleString(); 
       return(s);                 // 返回新设的日期。
    }
      

  4.   

    <script>
    function DateAdd(interval,number,date)
    {
    /*
     *--------------- DateAdd(interval,number,date) -----------------
     * DateAdd(interval,number,date) 
     * 功能:实现VBScript的DateAdd功能.
     * 参数:interval,字符串表达式,表示要添加的时间间隔.
     * 参数:number,数值表达式,表示要添加的时间间隔的个数.
     * 参数:date,时间对象.
     * 返回:新的时间对象.
     * var now = new Date();
     * var newDate = DateAdd("d",5,now);
     * author:wanghr100(灰豆宝宝.net)
     * update:2004-5-28 11:46
     *--------------- DateAdd(interval,number,date) -----------------
     */
        switch(interval)
        {
            case "y" : {
                date.setFullYear(date.getFullYear()+number);
                return date;
                break;
            }
            case "q" : {
                date.setMonth(date.getMonth()+number*3);
                return date;
                break;
            }
            case "m" : {
                date.setMonth(date.getMonth()+number);
                return date;
                break;
            }
            case "w" : {
                date.setDate(date.getDate()+number*7);
                return date;
                break;
            }
            case "d" : {
                date.setDate(date.getDate()+number);
                return date;
                break;
            }
            case "h" : {
                date.setHours(date.getHours()+number);
                return date;
                break;
            }
            case "m" : {
                date.setMinutes(date.getMinutes()+number);
                return date;
                break;
            }
            case "s" : {
                date.setSeconds(date.getSeconds()+number);
                return date;
                break;
            }
            default : {
                date.setDate(d.getDate()+number);
                return date;
                break;
            }
        }
    }var now = new Date();
    //加五天.
    var newDate = DateAdd("d",5,now);
    alert(newDate.toLocaleDateString())
    //加两个月.
    newDate = DateAdd("m",2,now);
    alert(newDate.toLocaleDateString())
    //加一年
    newDate = DateAdd("y",1,now);
    alert(newDate.toLocaleDateString())
    </script>