Firefox对函数getYear()返回不正确的原因和解决办法

来源:互联网 发布:微表情测试软件 编辑:程序博客网 时间:2024/05/22 14:24

原文地址:http://blog.sina.com.cn/s/blog_51e457060100h8qr.html 作者:木子狼


最近看了木子狼一下迅雷的招聘,想准备一下也去应聘,然后特意找到曾今在迅雷任职过的小网哥(Rex)咨询了一下迅雷的相关面试情况,据说机试考的JS类的题目不会太难!

比如下面这样一道题目,就是编个当前日期时间出来,先放上代码:

<script type="text/javascript">
function showtime(){
var timenow;
var today=new Date();
var year=today.getYear();
var mon=today.getMonth()+1;
var date=today.getDate();
var day=today.getDay();
switch(day){
 case 0:day="星期日";break;
 case 1:day="星期一";break;
 case 2:day="星期二";break;
 case 3:day="星期三";break;
 case 4:day="星期四";break;
 case 5:day="星期五";break;
 case 6:day="星期六";break;
}
var hour=today.getHours();
var minu=today.getMinutes();
if(minu<10) minu="0"+minu;
var secd=today.getSeconds();
if(secd<10) secd="0"+secd;

timenow="今天是:"+year+"年"+mon+"月"+date+"日 "+day+" "+hour+":"+minu+":"+secd;
document.getElementByIdx("clock").innerHTML=timenow;
setTimeout("showtime()",1000);
}
window.onload=showtime;
</script>

<div id="clock"></div>

 

这里又涉及到浏览器兼容问题,这段代码在Microsoft Internet Explorer中执行正常,输出2010年03月16日星期二,但在Mozilla Firefox浏览器中却显示为110年03月16日星期二,这个问题在其它许多网站上都存在,因为浏览器对于JS代码的解释是存在差异性的。

IE中:
today=new Date();
today.getYear()返回的是绝对的公元纪年,2010

Firefox中:
today=new Date();
today.getYear()返回的是相对绝对的年份,年份相对于1900,因为今年是2010,两者相减是110。

这个问题的根源在于2000年问题,以前年份的表示使用2位数字,在ECMAScript Language Specification的规范中是这么描述的Date对象的:

引用内容 引用内容
Date.prototype.getYear ( )

NOTE
The getFullYear method is preferred for nearly all purposes, because it avoids the "year 2000 problem."
When the getYear method is called with no arguments the following steps are taken:
1. Let t be this time value.
2. If t is NaN, return NaN.
3. Return YearFromTime(LocalTime(t)) − 1900.



因此,为了最大范围的兼容性,使用getFullYear() 是正确的,在不同浏览器中都能正确计算。 就解决了获取年份的兼容性问题。



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 哲学图片 哲学书 哲学的拼音 西方哲学史 人生哲学 西方哲学 刀的哲学 哲学意思 哲学简史 中国哲学 黑格尔哲学 中国哲学史 哲学小故事 哲学英语 哲学三问 哲学的贫困 我是谁哲学 van哲学图片 哲学是 哲学网 哲学的意义 哲学论文 哲学的定义 哲学的英文 哲学 英语 哲学就业 科技哲学 分析哲学 什么叫哲学 哲学定义 哲学书推荐 教育哲学 哲学与生活 哲学的概念 哲学吧 哲学人生 哲学英文 哲学考研 哲学的作用 哲学入门 哲学的含义