rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Javascript

js的获取年份问题

众所周知,js里面有个内置对象Date,记录了有关系统时间的信息。我们只要实例化一个Date对象,var date= new Date(); 然后就可以用这个对象获取有关当前时间的各种信息,比如年份,月份,日期以及时间等。 这里有一个小小的问题,在获取年份的时候,不同的浏览器竟然有不一样的结果喔。 var year=date.getYear(); alert(year);    IE中显示2010,没问题;但是FF,Chrome等却显示110,神奇呢~~~ 我们仔细观察一下,发现2010-1990=110! 溯其根源,是因为在2000年之前,我们是两位数来表示年份的,比如拳皇97,拳皇99, 没有说拳皇1997的吧? 所以呢,在javascript里,获取的年份是默认减去1990的,当然在2000年之前,这是没问题的,但是2000年之后,就会出现110年这样的怪现象。 其实这么说来,110年才是正常的,IE中显示2010年的原因只是IE这个“万能”的浏览器自作主张地对getYear()的值加上1990罢了。 对了,这里顺便说一下,在java里面,也有这个现象,Date对象获取年份的时候也是默认减去1990的,不过在java里面,getYear()这个方法被标识为过时的,系统会提示,如果想获取到4位数的年份,需要用Calendar对象。 好了,我们回到js。要解决这个浏览器显示不同年份的问题怎么办呢?很简单,两个方法。 1.改用getFullYear()方法,直接获取4位数的年份值
2.做个3元运算来处理,year=year<2000?year+1990:year
本人比较蠢,只想到两个办法,如果有好的建议,请赐教。。。。
顶一下
(0)
踩一下
(0)