我在我的codeigniter项目中使用jQuery日期选择器
我在视图中使用它
<script>
$(function() {
$( "#from-datepicker" ).datepicker();
});
</script>
<script>
$(function() {
$( "#to-datepicker" ).datepicker();
});
</script>
<div style="float:left; width:330px">
<input name="from-date" type="text" id="from-datepicker" />
</div>
<div style="float:left; width:330px">
<input name="to-date" type="text" id="to-datepicker" />
</div>
在我的控制器中我有
public function titlesDownloads(){
if($_POST){
$form = $this->input->post();
$boxes = $form['boxes'];
$titles = $form['titles'];
$from_date = date('Y-m-d',strtotime($form['from-date']));
$to_date = date('Y-m-d',strtotime($form['to-date']));
$data['titles_downloads'] = $this->Statistic_model->getTitlesDownloads($boxes, $titles, $ipsegments, $from_date, $to_date);
$data['from_date'] = $from_date;
$data['to_date'] = $to_date;
$this->load->view('statistic/titles-downloads', $data);
}
}
在我的模型中,我有将下载次数计算为
的功能 public function getTitlesDownloads($boxes, $titles, $from_date, $to_date){
$query = $this->db->select('mc_boxes_idmc_boxes, mc_boxes.location, idtitle_history, titles.title, COUNT(mc_boxes_has_downloads.idtitle_history) AS Titles_Downloads ')
->from('mc_boxes_has_downloads')
->join('mc_boxes', 'mc_boxes_has_downloads.mc_boxes_idmc_boxes = mc_boxes.idmc_boxes', 'left')
->join('titles', 'mc_boxes_has_downloads.idtitle_history = titles.idtitles', 'left')
->where_in('mc_boxes_idmc_boxes', $boxes)
->where_in('idtitle_history', $titles)
->where('actiontime >=', $from_date)
->where('actiontime <=', $to_date)
->group_by('mc_boxes_idmc_boxes')
->group_by('idtitle_history')
->get();
$data = $query->result_array();
return $data;
}
现在,对于特定标题id = 7,在6月份有4次下载。但是当我运行查询时它返回三个。跳过了6月30日的最后一次下载。
我认为日期选择器正在跳过所选日期的上限和下限。虽然在我的查询中我写了&gt; = startdate和&gt; = enddate。
为什么它会跳过最后日期?
有什么想法吗?
谢谢
答案 0 :(得分:1)
由于您只传递日期而没有时间,因此可能假设时间是午夜。因此,不到6月30日的午夜就会排除显示从6月30日开始的任何事情。
您最好的选择可能是添加一天并使用少于找到前一天发生的任何事情。