[原创]Magento1.4.2 Bug:后台Grid用时间筛选同一天记录,会漏掉当天11点以后的记录。
2011-07-18 11:31
375 查看
偶尔在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 类中的首行,将
即可,没错,就是相差一秒,设计者有点考虑的偏差,具体是因为时间转换为 sql 条件的时候,时间格式有误,正确的格式为 2011-07-01 23:59:59,但实际格式为 2011-07-01 23-59-59,导致了无法进行分钟的匹配。
具体的代码追踪不做详细介绍,有兴趣的朋友可以追踪以下代码:
Mage_Adminhtml_Block_Widget_Grid 类的 _prepareCollection 方法, 在末端打印
即可看到实际的sql语句。
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语句。
相关文章推荐
- Magento后台Grid删除Add New按钮
- SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录
- 我靠,经营一个网站容易吗?想伪原创一下啊,下载了一个工具,结果尼玛中招了,我勒个去啊。大家以后小心 伪原创工具 伪原创 病毒 中招 举报为原创 记录
- 原创:记录一次硬盘数据恢复(瞬间分成四个区以后的数据还原)
- SQL筛选出同一学科的时间最新的记录
- 实习三个月整,记录自己的成长,主要是保留一些这段时间学习flex的链接,方便以后查看
- magento 1.4 -- 后台分类页和产品页字段名无法翻译的bug及解决方案
- magento -- 如何修改后台列表(Grid)的默认行数
- sql筛选出每一人的时间最新的一条记录
- magento - 使用后台设置的时间用法
- DAU 统计,日活跃用户数 (DAU) 是衡量一个产品表现的重要指标。 需要编写程序,根据给定的某一天的 N 条访问记录,对当天的用户总数 M 进行统计。
- android时间戳转换成日期(与php后台),日期转换成时间戳小问题记录
- 查询当天、本周、本月记录 获取大于跟当前时间相差几天的语句
- magento---后台grid加载过程分析(二)-------edit grid-----news插件为例!
- 图片上传-花了一天时间的bug
- JS 获取当天所在月的最后一天日期,所在周的每天的日期,时间的计算
- 项目中筛选条件起始时间查询 1.精确到某一天 '2016-02-24'; 2.精确到时分秒 '2016-02-24 10:03:55'
- 查询当天、本周、本月记录 获取大于跟当前时间相差几天的语句 .(Z)
- Magento后台Grid删除Add New按钮
- mysql 获取当前日期,前一天,后一天方法及时间格式化 wordpress 后台头部添加气泡通知