各瀏覽器中 Date 對(duì)象的 getYear 方法的返回值不一致
來(lái)源:易賢網(wǎng) 閱讀:1129 次 日期:2015-03-18 11:05:26
溫馨提示:易賢網(wǎng)小編為您整理了“各瀏覽器中 Date 對(duì)象的 getYear 方法的返回值不一致”,方便廣大網(wǎng)友查閱!

標(biāo)準(zhǔn)參考

根據(jù) ECMAScript 規(guī)范附錄 B.2.4 Date.prototype.getYear() 中的描述,'getYear' 返回的是當(dāng)前年份與 1900 的差值,該方法已經(jīng)作廢,應(yīng)使用 'getFullYear' 來(lái)代替以避免“千年蟲(chóng)”問(wèn)題。

問(wèn)題描述

Date 對(duì)象的 getYear 方法在各瀏覽器下的返回值存在差異。

造成的影響

使用 Date.getYear 方法在不同的瀏覽器中將出現(xiàn)預(yù)料外的結(jié)果。

受影響的瀏覽器

所有瀏覽器

問(wèn)題分析

根據(jù)規(guī)范,這個(gè)方法將返回當(dāng)前時(shí)間的年份值與 1900 的差值,如 1800 年返回 -100,2010 返回 110。但 IE 僅在一個(gè) 1900 - 1999 年之間的日期值上調(diào)用 getYear 方法時(shí),減去 1900,在其他的日期中返回的是實(shí)際的年份,就和 getFullYear 一樣。1

在各瀏覽器中運(yùn)行以下代碼:

alert(new Date(1979,11,1).getYear());

alert(new Date(2010,2,17).getYear());

各瀏覽器下的輸出結(jié)果,如下表所示:

IE79

2010

Firefox Chrome Safari Opera79

110

可見(jiàn):不能保證 Date.prototype.getYear() 在各瀏覽器下返回相同的字符串。

注:

1. 關(guān)于 IE 下的 getYear 方法的描述,請(qǐng)參考 MSDN - getYear Method。

解決方案

要獲得一個(gè)具體時(shí)間的年份,請(qǐng)不要使用 Date.prototype.getYear() 方法,使用 Date.prototype.getFullYear() 代替,以在各瀏覽器下獲得相同的表現(xiàn)。

另外,要給一個(gè) Date 對(duì)象設(shè)置年份,也請(qǐng)不要使用 Date.prototype.setYear() 方法,使用 Date.prototype.setFullYear() 代替。

更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:各瀏覽器中 Date 對(duì)象的 getYear 方法的返回值不一致
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話(huà):0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)