[原创]Magento1.4.2 Bug:后台Grid用时间筛选同一天记录,会漏掉当天11点以后的记录。

偶尔在Magento v1.4.2下发现了一个bug,在后台的gird中,用时间筛选数据时,比如:筛选 01月01号-02号的是500条记录,筛选01号-01号的是270条,再筛选02号-02号的只有200条,那剩余的30条到哪里去了呢?经过检查,原来每个筛选记录的终止时间,只能定位当天的11点,这算是一个Bug吧,要解决这问题可以修改一下一行代码即可:

Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Datetime 类中的首行,将


const END_OF_DAY_IN_SECONDS = 86399;
改为
const END_OF_DAY_IN_SECONDS = 86400;

即可,没错,就是相差一秒,设计者有点考虑的偏差,具体是因为时间转换为 sql 条件的时候,时间格式有误,正确的格式为  2011-07-01 23:59:59,但实际格式为 2011-07-01 23-59-59,导致了无法进行分钟的匹配。


具体的代码追踪不做详细介绍,有兴趣的朋友可以追踪以下代码:

Mage_Adminhtml_Block_Widget_Grid 类的  _prepareCollection 方法, 在末端打印 

echo (string)  $this->getCollection()->getSelect(); 

即可看到实际的sql语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值