bootstrap-calendar控件中,月份中某天日程跟某天下的日程数不同

林和煦
2023-12-01

问题: 开发公司产品时,遇到的bug,在月份中某天日程显示为1条,但是点击进入到当天后,显示为两条。

问题出现原因: 经过排查发现,假如点击的是2017年10月10号这一天,获得的start日期为2017-10-09T16:00:00.000Z,end日期为2017-10-10T16:00:00.000Z,

转换成yyyy-MM-dd也就是开始时间2017-10-10,结束时间为2017-10-11,此时后台搜过开始日期和结束日期搜索,则得到的是两天的结果,所以显示的数据不同。

解决方案:

      1、前台控制: 通过控件获得结束时间后,在结束时间的基础上减去一天,就是正确的搜索结果

var str1 = start.format('yyyy-MM-dd'); //开始时间

end = new Date(new Date(end).getTime() - 24*60*60*1000); //减去一天的时间

	var str2 = end.format('yyyy-MM-dd');    //结束时间
2、后台控制:此时相对简单,后台获取到开始时间和结束时间后,数据库搜索时,where条件大于等于开始时间,小于结束时间
	eg: SELECT count(1) as order_sum FROM sdb_b2c_orders where sdb_b2c_orders.createtime >= UNIX_TIMESTAMP('2017-10-10’)
and sdb_b2c_orders.createtime < UNIX_TIMESTAMP('2017-10-11’);

 类似资料: