Open ZoeyYoung opened 8 years ago
在1月31日的时候无意中发现系统的一个BUG
原因是旧项目代码写了一段非常SB的代码
function cloneDate(date) { var _date = new Date(); _date.setFullYear(date.getFullYear()); _date.setMonth(date.getMonth()); _date.setDate(date.getDate(); return _date; }
在平常这段代码没什么问题,当月末的时候问题就来了,因为下个月的天数比这个月短,因此当把月份设置成2月,而date还是31的时候,就会变成3月2日;
var date = new Date('2016-02-01'); var _date = new Date('2016-01-31'); // 当前日期 _date.setFullYear(date.getFullYear()); console.log(_date.toString()); // "Sun Jan 31 2016 08:00:00 GMT+0800 (CST)" _date.setMonth(date.getMonth()); console.log(_date.toString()); // "Wed Mar 02 2016 08:00:00 GMT+0800 (CST)" _date.setDate(date.getDate()); console.log(_date.toString()); // "Tue Mar 01 2016 08:00:00 GMT+0800 (CST)"
说SB的原因是压根不知道这个函数存在的意义~
在1月31日的时候无意中发现系统的一个BUG
原因是旧项目代码写了一段非常SB的代码
在平常这段代码没什么问题,当月末的时候问题就来了,因为下个月的天数比这个月短,因此当把月份设置成2月,而date还是31的时候,就会变成3月2日;
说SB的原因是压根不知道这个函数存在的意义~