JavaScript中Date類的getMonth方法的返回值比實際月份少一的原因之我見

熟悉JavaScript的同志們應該知道這一點,那就是Date類的getMonth方法的返回值比實際月份少一。爲什麼會是這樣呢?我認爲這是出於風俗習慣和實用的考慮。

我猜測,在英文環境中,關於月份的表達用數字的機會遠少於文本。不像中文環境中的我們,表達月份只要用“數字+ 月” 就可以了,如2月。而英文卻是要把2月讀做February,而February與數字2在文本形式上沒有一點關聯(本段待考證啊)。

那麼如何快速表達這些文本呢,當然是數據驅動的思想啦,用數組即可。那麼如何快速訪問數組的元素呢,當然是索引啦,於是乎getMonth的返回值作爲月份數組的返回值就理所應當了。

代碼實例

輸出當前的英文的月份及其縮寫

var mon = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var monAbbr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var now = new Date();

document.write(mon[now.getMonth()] + "<br/>");
document.write(monAbbr[now.getMonth()] + "<br/>");

輸出結果爲:

March
Mar

擴展

Date的getDay方法的返回值是0-6的,與getMonth保持了完美的一致,不過0-6對應着星期日-星期六,這就是風俗習慣問題了。

關於用文字多還是用數字多,對於年月日中的日的表達,英文語言環境中更習慣用數字。Date的getDate方法的返回值是1-31暗示了這一點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章