每天写着应用的代码,就好像 robot 一样.以至于又忙又没有研究一些东西又没写博客.
今天发现了一个 JS Date 的 bug.终于可以有写的了
bug 描述:
var d = new Date();
在使用 d.setMonth(m) 时,按照预期 d.getMonth() === m,可在某些特殊情况下,d.getMonth() > m, d.getDate() = 1
特殊情况总结:
d.getDate() 大于 m+1 月份的总天数
举例:
var d = new Date(); // 今天是 2013年10月31号d.setMonth(1); // 设置月份为 2 月,2 月份总天数为 28 或 29,都小于 31
d.getMonth(); // d.getMonth() = 2; d 为 2013 年 3 月 1 号
d.getDate(); // d.getDate() = 1; d 为 2013 年 3 月 1 号
解决方案:
在 d.setMonth(m) 之前加上 d.setDate(1)
如:
var d = new Date(); // 今天是 2013年10月31号d.setDate(1);
d.setMonth(1); // 设置月份为 2 月
var currentMonth = d.getMonth(); // currentMonth 值为 1
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于