A-A+

javascript中getYear()和getFullYear()的区别

2016年01月21日 web前端设计 暂无评论 阅读 6 views 次

在我的记忆中getYear()和getFullYear()的要的区别是兼容ff浏览器,如果在ie中使用权getYear()没什么问题了,但是在ff中getYear获取不到我们真正的年份,需要使用getFullYear()

js中得到当前的年份的做法是,如下代码:

var object = new Date(), object.getYear()

来得到年份,这样会出现浏览器兼容问题,在IE中可以得到想要的结果,但是FF中一行,在FF中得到的结果和当前想要得到的年份相差1900,可以用如下做法来避免这个问题,代码如下:

  1. var object = new Date();  
  2. var mydate = (object.getYear()<1900)?(1900+object.getYear()):object.getYear();  
  3. Document.wite(mydate);  

但在现在可以用getFullYear来避免IE和FF的兼容性问题,getFullYear()在IE与FF中都能得到我们想要的结果,这样就避免了浏览器的兼容性的问题了。

实例代码如下:

  1. <html>  
  2.   <head>  
  3.   <title>年月日三下拉框联动</title>  
  4.   <meta http-equiv='Content-Type' content='text/html; charset=gb2312'>  
  5.   <meta name='author' content='oiea'>  
  6.     
  7.   <script language="JavaScript">  
  8.       <!--  
  9.       function initDate(year,month,day)  
  10.       {  
  11.             //每个月的初始天数  
  12.           MonDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];  
  13.           //当前的年份  
  14.           var y = new Date().getFullYear();  
  15.           //当前的月份  
  16.           var m = new Date().getMonth()+1; //javascript月份为0-11  
  17.           //但前的天份  
  18.           var d = new Date().getDate();  
  19.             
  20.             //以今年为准,向后2年,填充年份下拉框  
  21.           for (var i = y; i < (y+2); i++)  
  22.             {  
  23.               year.options.add(new Option(i,i));  
  24.             }  
  25.             //选中今年  
  26.             yyear.value=y;  
  27.           //填充月份下拉框  
  28.           for (var i = 1; i <= 12; i++)  
  29.             {  
  30.                 month.options.add(new Option(i,i));  
  31.             }  
  32.             //选中当月  
  33.             mmonth.value = m;  
  34.                   
  35.             //获得当月的初始化天数  
  36.             var n = MonDays[m-1];  
  37.             //如果为2月,天数加1  
  38.             if (m == 2 && isLeapYear(year.options[year.selectedIndex].value))  
  39.                   n++;  
  40.             //填充日期下拉框  
  41.             createDay(n,day);   
  42.             //选中当日  
  43.             day.value = new Date().getDate();  
  44.       }  
  45.       function change(year,month,day) //年月变化,改变日  
  46.       {  
  47.            var y = year.options[year.selectedIndex].value;  
  48.            var m = month.options[month.selectedIndex].value;  
  49.            //if (m == "" ){  clearOptions(day); return;}  
  50.            var n = MonDays[m - 1];  
  51.            if ( m ==2 && isLeapYear(y))  
  52.            {  
  53.                n++;  
  54.            }  
  55.            createDay(n,day)  
  56.       }  
  57.        
  58.       function createDay(n,day) //填充日期下拉框  
  59.       {  
  60.           //清空下拉框  
  61.            clearOptions(day);  
  62.            //几天,就写入几项  
  63.            for(var i=1; i<=n; i++)  
  64.            {  
  65.               day.options.add(new Option(i,i));  
  66.            }  
  67.       }  
  68.         function clearOptions(ctl)//删除下拉框中的所有选项  
  69.       {  
  70.             for(var i=ctl.options.length-1; i>=0; i--)  
  71.             {  
  72.               ctl.remove(i);  
  73.           }  
  74.       }  
  75.         
  76.       function isLeapYear(year)//判断是否闰年  
  77.       {   
  78.           return( year%4==0 || (year%100 ==0 && year%400 == 0));  
  79.       }  
  80.       //-->  
  81.    </script>  
  82.   </head>  
  83.   <body onload="initDate(document.form1.select_year,document.form1.select_month,document.form1.select_day)">  
  84.       <form name="form1">  
  85.             <select name="select_year" onchange="change(this, document.form1.select_month, document.form1.select_day)"></select>year  
  86.             <select name="select_month" onchange="change(document.form1.select_year, this,document.form1.select_day)"></select>month   
  87.             <select name="select_day"></select>day  
  88.       </form>  
  89.   </body>  
  90.   </html>  
标签:

给我留言