JS 年月日连动

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <script language="javascript">
  function   YYYYMMDDstart()  
  {  
          MonHead   =   [31,   28,   31,   30,   31,   30,   31,   31,   30,   31,   30,   31];  
   
          //先给年下拉框赋内容  
          var   y       =   new   Date().getFullYear();  
          for   (var   i   =   (y-30);   i   <   (y-10);   i++)   //以今年为准,显示前30年之后的20年  
                  document.form1.YYYY.options.add(new   Option(""+i+"",   i));  
   
          //赋月份的下拉框  
          for   (var   i   =   1;   i   <   13;   i++)  
                  document.form1.MM.options.add(new   Option(""+i+"",   i));  
   
//          document.form1.YYYY.value   =   y;   //获取到当前年份
//          document.form1.MM.value   =   new   Date().getMonth()   +   1;   获取到当前月份
          var   n   =   MonHead[new   Date().getMonth()];  
          if   (new   Date().getMonth()   ==1   &&   IsPinYear(YYYYvalue))   n++;  
                  writeDay(n);   //赋日期下拉框Author:meizz  
//          document.form1.DD.value   =   new   Date().getDate();   获取到当前日期
  }  
  function   YYYYDD(str)   //年发生变化时日期发生变化(主要是判断闰平年)  
  {  
          var   MMvalue   =   document.form1.MM.options[document.form1.MM.selectedIndex].value;  
          if   (MMvalue   ==   ""){   var   e   =   document.form1.DD;   optionsClear(e);   return;}  
          var   n   =   MonHead[MMvalue   -   1];  
          if   (MMvalue   ==2   &&   IsPinYear(str))   n++;  
                  writeDay(n)  
  }  
  function   MMDD(str)     //月发生变化时日期联动  
  {  
          var   YYYYvalue   =   document.form1.YYYY.options[document.form1.YYYY.selectedIndex].value;  
          if   (YYYYvalue   ==   ""){   var   e   =   document.form1.DD;   optionsClear(e);   return;}  
          var   n   =   MonHead[str   -   1];  
          if   (str   ==2   &&   IsPinYear(YYYYvalue))   n++;  
                  writeDay(n)  
  }  
  function   writeDay(n)     //据条件写日期的下拉框  
  {  
          var   e   =   document.form1.DD;   optionsClear(e);  
          for   (var   i=1;   i<(n+1);   i++)  
                  e.options.add(new   Option(""+i+"",   i));  
  }  
  function   IsPinYear(year)//判断是否闰平年  
  {       return(0   ==   year%4   &&   (year%100   !=0   ||   year%400   ==   0));}  
  function   optionsClear(e)  
  {  
          for   (var   i=e.options.length;   i>0;   i--)  
                  e.remove(i);  
  }
  </script>
 </head>

 <body onload="YYYYMMDDstart()">
 <form name="form1">
  <select name="YYYY" onchange="YYYYDD(this.value)">
                <option value="0">选择年</option>
            </select>
            <select name="MM" onchange="MMDD(this.value)">
                <option value="0">选择月</option>
            </select>
            <select name="DD">
                <option value="0">选择日</option>
            </select>
   </form>
 </body>
</html>

原文地址:https://www.cnblogs.com/zyosingan/p/1208662.html