标签:
在采购商财务电子钱包中提供了可查询最近一个月数据的功能:该功能会使用JS Date类型计算新的日期。
这里有一点需要注意:在设置日期时,date.setMonth(m);//m is from 0 to 11. 这里如果当前日期时2015年3月31日,date.setMonth(1);得到的结果是2015年3月3日。
对于最近一个月的定义如下:
1.上月无当日的(3月31日,2月无31日。闰年2月29也在考虑范围内)最近一个月为:当月1日~当前日。
2.其余(上月有当日) 最近一个月为:上月当日~当前日。
另:如下JS代码结算新日期会出错:
var year = 2015,month = 1,d = 1;//m is from 0 to 11
var date = new Date(); //当前日为2015年4月30.
date.setFullYear(year);
date.setMonth(month);//执行后日期变为2015年2月30.,2015年2月无此日期。28日为最后一天,30-28=2。延后2天得日期变为2015年3月2日。
date.setDate(d);//日期变为2015年3月1日
期望得到date为:2015年2月1日
实际得到date为:2015年3月1日.
同样的Date.setFullYear(),Date.setDate()都会出现时间溢出问题
标签:
原文地址:http://www.cnblogs.com/penny1141/p/4381302.html