我正在尝试向我的 PHP 站点添加时间搜索,该站点已经有日期搜索并且工作正常。但是当我尝试添加时间搜索时,它无法正常工作。它似乎正在发送数据但没有影响很大。例如,当我选择 13:00 作为开始时间和 16:00 作为结束时间时,它显示了那几天的所有记录,不关心时间。但是如果我为开始和结束选择相同的时间,它什么都不显示。选择一个高于结束时间的时间作为开始时间,同样不显示。//search_model.phpif(!empty($data['start'])){$this->db->where('Date(requests.confirmed_at) >=', date("Y-m-d", strtotime($data['start'])));}if(!empty($data['end'])){$this->db->where('Date(requests.confirmed_at) <=', date("Y-m-d", strtotime($data['end'])));}if(!empty($data['starttime'])){$this->db->where('Date(requests.confirmed_at) >=', date("H:i", strtotime($data['starttime'])));}if(!empty($data['endtime'])){$this->db->where('Date(requests.confirmed_at) <=', date("H:i", strtotime($data['endtime'])));}//search_view.php<div class="form-group" id="data_5"><label class="col-sm-2 control-label font-normal"><?php echo lang('select_date_range');?></label><div class="col-sm-10"><div class="input-daterange input-group" id="datepicker"><input type="text" class="form-control-sm form-control" name="start" value="<?php echo date("Y-m-d")?>"/><div class="input-group clockpicker"><input type="text" class="form-control" value="" name="starttime" id="starttime"><span class="input-group-addon"><span class="glyphicon glyphicon-time"></span></span></div><span class="input-group-addon">to</span><input type="text" class="form-control-sm form-control" name="end" value="<?php echo date("Y-m-d")?>" /><div class="input-group clockpicker"><input type="text" class="form-control" value="" name="endtime" id="endtime"><span class="input-group-addon"><span class="glyphicon glyphicon-time"></span></span></div>在视图到模型之间发布数据没有问题。所以我认为这是关于模型,但我无法解决它。任何帮助将不胜感激。谢谢。
1 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
在 MySQL 中,“Date”函数将仅返回日期时间字符串的日期,因此Date('2019-08-24 10:29:00')
将返回“2019-08-24”。
查看您的代码,前两个块是根据日期查看日期。接下来的两个块是根据日期查看时间,这就是问题所在。
如需参考,请参阅:https : //dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html(注意这是针对 MySQL 5.7,请确保从您的版本中引用文档正在使用)。
在上面的这种情况下,如果在按时间过滤数据时不需要日期约束,则可以使用上面文档中的 TIME() 函数。
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消