1

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回のダウンロードがあります。しかし、クエリを実行すると、3つ返されます。6月30日の最後のダウンロードはスキップされます。

日付ピッカーは、選択した日付の上限と下限をスキップしていると思います。私のクエリでは、>=startdateと>=enddateと書きました。

なぜ最終日をスキップするのですか?

何か案が?

ありがとう

4

1 に答える 1

1

日付のみを渡して時間を渡していないため、おそらく時間が真夜中であると想定しています。したがって、6 月 30 日の午前 0 時より短いと、6 月 30 日以降は表示されなくなります。

あなたの最善の策は、前日に発生したものを見つけるために、1 日を追加し、未満を使用することです。

于 2012-07-05T14:18:24.863 に答える