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

本文探讨了JavaScript中Date类getMonth方法返回值比实际月份小1的原因,并通过示例代码展示了如何利用这一特性来获取当前月份的英文全称及缩写。

熟悉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暗示了这一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值