其中getYear()方法出生較早,在早期也一直使用OK,可是在2000年後這個方法問題多多,因為在Firefox和Safari等浏覽器上,getYear始終返回年份與1900 年之間的差,比如1998年返回98,而2009年則會顯示109,如果大家都這麼處理也好,要加一起加,微軟自己在IE浏覽器中把getYear給修正了,可Firefox(最新版本也沒修正這個問題)還蒙在鼓裡,仍老老實實的按照原有規則解析getYear,本來都可以指望用戶自行修正,這樣一來都沒得用,於是getFullYear、getUTCFullYear就出生了。
1、getYear()函數 使用getYear()方法可返回兩位或四位數的年份,用getYear()返回的數並不一定是4位的!處於1900年和1999年間的getYear()方法返回的只有兩位數。在此之前的或是在此之後的年份返回的都是四位數的,比如2009年,Javascript解析器應該是返回2009的,而浏覽器則計算返回109。這應該是早期的約定,而IE埋頭改掉了。該函數已經被逐漸廢棄並不推薦使用。
復制代碼 代碼如下:
<script type="text/javascript">
var d = new Date();
document.write(d.getYear());//IE輸出2009,FIREFOX輸出109
</script>
2、getFullYea()函數 getFullYear函數則不存在此問題。getFullYear()方法可返回一個四位數年份,這樣大家(IE和FIREFOX等)都不需要運算,直接把解析值輸出來即可。
復制代碼 代碼如下:
<script type="text/javascript">
var d = new Date();
document.write(d.getFullYear());//IE輸出2009,FIREFOX輸出2009
</script>
3、getUTCFullYear()函數 getUTCFullYear()函數則是根據UTC時間返回了四位數來代表年份。與getFullYear()方法理論角度是完全不同,雖然在大部分的時間裡輸出是相同的,但是假如當天日期是12月31日或1月1日,則getUTCFullYear() 返回值與getFullYear()返回值就有可能不同,具體取決於當地時區和UTC通用時間之間的關系,也就是差值。
復制代碼 代碼如下:
<script type="text/javascript">
var d = new Date();
document.write(d.getUTCFullYear());//IE輸出2009,FIREFOX輸出2009
</script>
比如在中國大陸、、香港、澳門、蒙古國、台灣、新加坡、馬來西亞、菲律賓等地區的本地時間比UTC快8小時,記作UTC+8,意思就是比UTC時間快8小時。減的類似理解,比如UTC-10等。