您的位置:首页 > Web前端 > JavaScript

JavaScript中Date类的getMonth方法的返回值比实际月份少一的原因之我见

2016-03-10 23:17 609 查看
熟悉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暗示了这一点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript Date getMonth