function getNow(){
var d = new Date();
return (d.getYear()+1900)+"-"+(d.getMonth()+1)+"-"+d.getMonth()+1;
 
}
function a(){
var t = getNow();
var s   =   t.replace(/(\D)(\d)(?=\D|$)/g,  "$10$2 "); 
var s1 = new   Date().Format(s);
alert(s1-2011-5-11);  //我想让这个值返回一个整数   但是现在返回的是NaN
}
Date.prototype.Format   =   function(format) 

    var   o   =   { 
        "M+ "   :   this.getMonth()+1,   //month 
        "d+ "   :   this.getDate(),         //day 
        "h+ "   :   this.getHours(),       //hour 
        "m+ "   :   this.getMinutes(),   //minute 
        "s+ "   :   this.getSeconds(),   //second 
        "q+ "   :   Math.floor((this.getMonth()+3)/3),     //quarter 
        "S "   :   this.getMilliseconds()   //millisecond 
    } 
    if(/(y+)/.test(format))   format=format.replace(RegExp.$1, 
        (this.getFullYear()+ " ").substr(4   -   RegExp.$1.length)); 
    for(var   k   in   o)if(new   RegExp( "( "+   k   + ") ").test(format)) 
        format   =   format.replace(RegExp.$1, 
            RegExp.$1.length==1   ?   o[k]   :   
                ( "00 "+   o[k]).substr(( " "+   o[k]).length)); 
    return   format; 
}; 

解决方案 »

  1.   

    Js中escape(),encodeURI()和encodeURIComponent()使用和比较:escape方法以Unicode格式返回一个包含传入参数内容的string类型的值。 Escape方法会将传入参数中所有的空格、标点符号、重音字符以及其它任何非ASCII字符替换为%xx的编码形式,其中xx与其所表示的字符的16进制数表示形式相同。如空格字符的16进制表示形式为0x20,则此时xx应为20,即escape(‘ ’) 返回“%20”。escape和unescape方法能够帮助你编码和解码字符串。escape方法对于ISO Latin字符集中的字符组成的参数,返回其16进制编码。相对应的,unescape方法则能将16进制编码形式的参数转化成为其ASCII码形式。encodeURI方法返回一个经过编码的URI。如果将encodeURI方法的编码结果传递给decodeURI方法作参数,则能得到原始的未编码的字符串。需要注意到是encodeURI方法不编码如下字符":", "/", ";", and "?"。如果想要编码这些字符,请使用encodeURIComponent方法。encodeURIComponent方法返回一个编码过的URI。如果将encodeURIComponent方法的编码结果传递给encodeURIComponent方法作参数,则能得到原始的未编码的字符串。因为encodeURIComponent方法会编码所有的字符,所以如果待编码的字符串是用来表示一个路径(如/dir1/dir2/index.htm)时,就一定要小心使用了。‘/’符号会被其编码之后,将不再是一个有效的路径标识符,所以不能被web服务器正确地识别。当字符串包含一个单独的URI component(指?后面的请求参数)的时候,请使用此方法。escape()不编码的字符:@*/+encodeURI() 不编码的字符:~!@#$&*()=:/,;?+"encodeURIComponent()不编码的字符: ~!*()''
      

  2.   

    var xYear=this.getYear(); 
    xYear=xYear+1900; var xMonth=this.getMonth()+1; 
    if(xMonth<10){ 
    xMonth="0"+xMonth; 
    } var xDay=this.getDate(); 
    if(xDay<10){ 
    xDay="0"+xDay; 
    } var resu = xYear+"-"+xMonth+"-"+xDay//这个是你要的结果
      

  3.   

    有一个日期格式转换类啊 SimpleDateFormatSimpleDateFormat() 
              用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 
    SimpleDateFormat(String pattern) 
              用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 
    SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols) 
              用给定的模式和日期符号构造 SimpleDateFormat。 
    SimpleDateFormat(String pattern, Locale locale) 
              用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat。 
      

  4.   

    function cal() { 
    var ipt1 = document.getElementById("ipt1").value; 
    var ipt2 = document.getElementById("ipt2").value; 
    var arr1 = ipt1.split("-"); 
    var arr2 = ipt2.split("-"); var dt1 = new Date(); 
    dt1.setFullYear(ipt1[0]); 
    dt1.setMonth(ipt1[1] - 1); 
    dt1.setDate(ipt1[2]); var dt2 = new Date(); 
    dt2.setFullYear(ipt2[0]); 
    dt2.setMonth(ipt2[1] - 1); 
    dt2.setDate(ipt2[2]); var dif = dt2.getTime() - dt1.getTime(); 
    var days = dif / (24 * 60 * 60 * 1000); 
    document.getElementById("ipt3").value = days;