js代码如下 
function getCurrentDate(time){
            alert(time);
            var  result;
           if(typeof(time)== “String”){
                time = parse(time);
                alert(time);            }           
               var year = time.getFullYear();
               var mons = time.getMonth();
               var days = time.getDate();
            if(mons < 9){
                mons = "0"+mons;
            }
            if(days < 9){
                days = "0"+days;
            }
           result = year + "-" + mons + "-" + days;
           return result;
        }
alert中有数据,但是执行到var year = time.getFullYear();就报错!~~~~

解决方案 »

  1.   

    time = parse(time);
    可以看下parse写的什么么
      

  2.   

    可以看下parse写的什么么,parse是javascript中本来就有的呀··
      

  3.   

    是吗。这个我不知道.我知道的那个parse是Date.parse()阿
      

  4.   

    首先把第4行和第8行所有的全角字符改成半角,大小括号引号啥的 function getCurrentDate(time){
      alert(time);
      var result;
      if(typeof(time)== "string"){ //这里不是String
      time = new Date(time);//Date.parse(time);解析一个包含日期的字符串,并返回该日期与 1970年1月1日午夜之间所间隔的毫秒数
      alert(time);
      }
      var year = time.getFullYear();
      var mons = time.getMonth()+1; //月是从0开始计数的,所以要+1
      var days = time.getDate();
      if(mons < 10){ //9也应该变成09
      mons = "0"+mons;
      }
      if(days < 10){
      days = "0"+days;
      }
      result = year + "-" + mons + "-" + days;
      return result;
      }
    alert( getCurrentDate("Jan 9, 1996 08:47:00") );
      

  5.   

     var title =  document.noticeInfoForm.elements["obj.title"].value;
                var content = document.noticeInfoForm.elements["obj.content"].value;
                var validUntil = document.noticeInfoForm.elements["obj.validUntil"].value;
                var nowDate = getCurrentDate(new Date);
                validUntil = getCurrentDate(validUntil);
                createTime = getCurrentDate(createTime);
                var checkAddDate = nowDate > validUntil;
                var checkUpdateDate = createTime - validUntil;
                alert(checkUpdateDate);
    这是我下面验证用到的方法!~~~
    time这个参数可能是字符窜或者是日期类型的!~~
      

  6.   

    我调用了3次 getCurrentDate()方法   当参数是NEWdate时  返回正确  是下面2个字符窜是  返回的就是NAN了··
      

  7.   

            function getCurrentDate(time){
                var  result;
                if(typeof(time) == "String"){
                   alert("==>转换");
                   time = Date.parse(time);
                }
                    time = new Date(time);
                   var year = time.getFullYear();
                   var mons = time.getMonth()+1;
                   var days = time.getDate();
                if(mons < 10){
                    mons = "0"+mons;
                }
                if(days < 10){
                    days = "0"+days;
                }
               result = year + "-" + mons + "-" + days;
                alert(result);
               return result;
            }        function forSubmit(){
                var title =  document.noticeInfoForm.elements["obj.title"].value;
                var content = document.noticeInfoForm.elements["obj.content"].value;
                var validUntil = document.noticeInfoForm.elements["obj.validUntil"].value;
                var nowDate = getCurrentDate(new Date);
                validUntil = getCurrentDate(validUntil);
                createTime = getCurrentDate(createTime);
                var checkAddDate = nowDate > validUntil;
                alert(checkAddDate);
                var checkUpdateDate = createTime - validUntil;
                alert(checkUpdateDate);
                if(title == null ||title == ""){
                    alert("请输入标题!");
                }else if(content == null || content == ""){
                    alert("内容不能为空!");
                }else if(validUntil == null || validUntil == ""){
                    alert("有效日期不能为空!")
                }else {
                    if(checkAddDate){
                       if(noticeId == null || noticeId == ""){
                            alert("输入的时间必须大于等于当前时间!");
                        }else{
                            if(checkUpdateDate){
                                alert("截至日期必须大于等于创建日期!")
                            }
                             if(confirm("输入的日期小于当前日期,确认提交吗?")){
                             document.noticeInfoForm.submit();
                        }
                    }
                    }else{
                        document.noticeInfoForm.submit();
                    }
                }
            }这是我所有的代码!~~~大虾麻烦看下拉····还有typeof()貌似不起作用!~~~~
      

  8.   

    关于typeof(),见8楼代码第4行:if(typeof(time)== "string"){ //这里不是String
      

  9.   

    不明白为啥一定要用 Date.parse ?
    Date.parse(dateVal):
    解析一个包含日期的字符串,并返回该日期与 1970年1月1日午夜之间所间隔的毫秒数
    其中必选项 dateVal 是一个包含以诸如 "Jan 5, 1996 08:47:00" 的格式表示的日期的字符串,或者是一个从 ActiveX(R) 对象或其他对象中获取的 VT_DATE 值。
    类似"2010-12-8"的字符串parse出来的就是NaN了,需要用 new Date("2010-12-8".replace(/\D/,',')) 搞成 Date
    而诸如"Jan 5, 1996 08:47:00"的字符串也可以用 new Date("Jan 5, 1996 08:47:00") 得到 Date function getCurrentDate(time){
      var result;
      if(typeof(time) == "string"){//这里注意大小写
      alert("==>转换");
      time = isNaN(Date.parse(time)) ? time.replace(/\D/,',') : Date.parse(time);
      }
      time = new Date(time);
      var year = time.getFullYear();
      var mons = time.getMonth()+1;
      var days = time.getDate();
      if(mons < 10){
      mons = "0"+mons;
      }
      if(days < 10){
      days = "0"+days;
      }
      result = year + "-" + mons + "-" + days;
      alert(result);
      return result;
      }
      

  10.   

    to zyzy5
    其实不是一定要用date.parse,因为是刚毕业,基础也不好。不知道有什么更好的方法啦!
    我去试一下哦!
      

  11.   

    TO:zyzy5
    其实不是一定要用Date.parse的,只是我刚毕业出来,基础不好。不知道还有什么更好的办法拉···
    我去试一下
      

  12.   

     var nowDate = getCurrentDate(new Date);
      validUntil = getCurrentDate(validUntil);
      createTime = getCurrentDate(createTime);
    这三个参数 nowDate 是Date类型的 , validUntil 是JS类型中的获取的格式是1988-08-16 ,createTime 是数据库里取的 格式是1988-09-16 00:00:00.0这样的
    你的方法第三种格式的时候 date。parse()无法转换拉
      

  13.   


    alert(getCurrentDate("1988-09-16 06:00:00.0") );
    function getCurrentDate(time){
          var result;
          if(typeof(time) == "string"){
              alert("==>转换");
      time = time.indexOf(".") ? time.substring(0,time.indexOf(".")) : time;
      alert(time);
              time = time.replace(/\D/,',');
          }
          time = new Date(time);
          var year = time.getFullYear();
          var mons = time.getMonth()+1;
          var days = time.getDate();
          if(mons < 10){
              mons = "0"+mons;
          }
          if(days < 10){
              days = "0"+days;
          }
          result = year + "-" + mons + "-" + days;
          alert(result);
          return result;
      }