1.如何将字符串转换为时间,如:
    var s1 = '2009-10-1 00:00:00';
    var dt1 = new Date(s1);
    alert(dt1);
测试时,报错,结果为"NaN",郁闷中,网上都是去当前时间 var dt=new Date(),我希望把一个标准的字符串转换为时间然后计算.2.如何把时间部分增加,如将秒数+1,类似于C#中的:
dt=dt.AddSeconds(1);
setHour之类要解决进位问题,如秒/分超过60要进位3.如何得到两个时间的差额(单位:秒)
dt1:2009-1-1 00:00:00
dt2:2009-1-1 00:01:50
希望的结果为110.

解决方案 »

  1.   

    1.var s1 = '2009-10-1 00:00:00'; 
    s1=s1.replace(/-/,' ');
    var dt1 = new Date(s1); 
    alert(dt1);
      

  2.   

    2.var s1 = '2009-10-1 00:00:00'; 
    s1=s1.replace(/-/,' ');
    var dt1 = new Date(s1); Date.prototype.add = function(part,num){
        var datecopy;
        var ms = this.getTime();
        num = parseInt(num);
        switch(part){
            case "ms":
                ms +=  num;
                break;
            case "ss":
                ms +=  1000 * num;
                break;
            case "mi":
                ms +=  60 * 1000 * num;
                break;
            case "hh":
                ms +=  60 * 60 * 1000 * num;
                break;
            case "dd":
                ms +=  24 * 60 * 60 * 1000 * num;
                break;
            case "wk":
                ms +=  7 * 24 * 60 * 60 * 1000 * num;
                break;
            case "mm":
                datecopy = new Date(Date.parse(this));
                datecopy.setFullYear(this.getFullYear() + Math.floor((this.getMonth() + num) / 12));
                var mth = (this.getMonth() + num) % 12;
                if(mth < 0)mth +=  12;
                datecopy.setMonth(mth);
                break;
            case "qq":
                datecopy = new Date(Date.parse(this));
                datecopy.setFullYear(this.getFullYear() + Math.floor((this.getMonth() + 3 * num) / 12));
                var mth = (this.getMonth() + 3 * num) % 12;
                if(mth < 0)mth +=  12;
                datecopy.setMonth(mth);
                break;
            case "yy":
                datecopy = new Date(Date.parse(this));
                datecopy.setFullYear(this.getFullYear() + num);
                break;
        }
        if(datecopy == null)
            return new Date(ms);
        else
            return datecopy;
    }
    dt1=dt1.add("ss",1);//添加1秒
    alert(dt1);
      

  3.   

    3.var s1 = '2009-1-1 00:00:00'; 
    s1=s1.replace(/-/,' ');
    var dt1 = new Date(s1); 
    var s2="2009-1-1 00:01:50"
    s2=s2.replace(/-/,' ');
    var dt2=new Date(s2);
    var span=(dt2-dt1)/1000;//毫秒相减,除以1000得到 秒数
    alert(span);
      

  4.   

    1、var dt1 = new Date(2009,9,1,0,0,0);
    2、var dt = dt1.setSeconds(dt1.getSeconds + 1);
    3、var diff = ( dt2 - dt1 ) / 1000; 
      

  5.   

    更正一下:
    2、var dt = dt1.setSeconds(dt1.getSeconds() + 1);
      

  6.   

    再更正一下:
    2、dt1.setSeconds(dt1.getSeconds() + 1);
    此外,还有setMinutes, setHours,setDate,setMonth,setYear都是可以自动进位的
      

  7.   

    I服了U,C#习惯了,JS的内置函数功能太弱