是利用 gethour, getyear吗?

解决方案 »

  1.   

    关于日期正确性
    function checkDate(str)
    {
      var date=new Date(str);
      var y=date.getYear();
      var m=date.getMonth()+1;
      var d=date.getDate();
      var myday=y + "/" + patch(m) + "/" + patch(d);
      if (myday!=str)
      {
        alert(" 请输入一有效日期yyyy/mm/dd)!"); 
        return false; 
      }
      return true; 
    }function patch(n)
    {
      return (n-10<0) ? ("0"+n) : (""+n);
    }
    可解决yyyy/mm/dd合法日期判断问题,此函数checkDate('2001/01/01')返回true而checkDate('2001/1/1')返回false,如果不需要格式限制(即需要checkDate('2001/1/1')也返回true),可去掉函数patch()及其引用至于日期先后,可把"2001/01/01" --> 20010101,"2000/12/11" --> 20001211
    显然20010101 > 20001211 所以 2001/01/01在2000/12/11之后!注:几天前我就此类似问题作过解答,奇怪的是提问者最后选择了一种稍繁的方法,而摒弃了我的方法,可能是一些地方没有解释清楚