JavaScript中Date类的getMonth方法的返回值比实际月份少一的原因之我见
2016-03-10 23:17
609 查看
熟悉JavaScript的同志们应该知道这一点,那就是Date类的getMonth方法的返回值比实际月份少一。为什么会是这样呢?我认为这是出于风俗习惯和实用的考虑。
我猜测,在英文环境中,关于月份的表达用数字的机会远少于文本。不像中文环境中的我们,表达月份只要用“数字+ 月” 就可以了,如2月。而英文却是要把2月读做February,而February与数字2在文本形式上没有一点关联(本段待考证啊)。
那么如何快速表达这些文本呢,当然是数据驱动的思想啦,用数组即可。那么如何快速访问数组的元素呢,当然是索引啦,于是乎getMonth的返回值作为月份数组的返回值就理所应当了。
Mar
关于用文字多还是用数字多,对于年月日中的日的表达,英文语言环境中更习惯用数字。Date的getDate方法的返回值是1-31暗示了这一点。
我猜测,在英文环境中,关于月份的表达用数字的机会远少于文本。不像中文环境中的我们,表达月份只要用“数字+ 月” 就可以了,如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/>");
输出结果为:
MarchMar
扩展
Date的getDay方法的返回值是0-6的,与getMonth保持了完美的一致,不过0-6对应着星期日-星期六,这就是风俗习惯问题了。关于用文字多还是用数字多,对于年月日中的日的表达,英文语言环境中更习惯用数字。Date的getDate方法的返回值是1-31暗示了这一点。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享