JavaScript:打印前12个月 – “March”打印两次?

前端之家收集整理的这篇文章主要介绍了JavaScript:打印前12个月 – “March”打印两次?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个打印前12个月名称的脚本.由于这个月是1月,它应该打印:12月
十一月
十月
九月
八月
七月
六月
可以
四月
游行
二月
一月

相反,它打印三月两次. http://jsfiddle.net/h69gm04g/2/

十一月
十月
九月
八月
七月
六月
可以
四月
游行
游行
二月

HTML

<div id="test"></div>

使用Javascript

monthNames = [ "January","February","March","April","May","June","July","August","September","October","November","December" ];
    d = new Date();

    for (i = 0; i < 12; i++) {  
        d.setMonth(d.getMonth() - 1);      
        monthName = monthNames[d.getMonth()];       
        $('#test').append(monthNames[d.getMonth()] + "<br>");       
    }

我究竟做错了什么?

解决方法

好一个!花了我一会儿.

原因是今天是29日.由于您的日期对象被隐式设置为当前日期,并且二月份仅二月有28天,因此您会看到三月打印两次.通过设置可选的day参数来解决此问题:

d.setMonth(d.getMonth() - 1,1);

猜你在找的JavaScript相关文章