如何使用来获得数据> =和<=在PHP / MySQL的一个12小时的时间格式?(How

2019-10-18 13:41发布

我想从12:00:00 PM获得时间下午2点○○分00秒,但是当我用它不起作用start_time >= '12:00:00' AND end_time <= '02:00:00' 。 我有这样的代码为止。
注:我用代码点火器。

    $start =  date("g:i:s", strtotime($this->input->post('start')));
    $end =  date("g:i:s", strtotime($this->input->post('end')));
    $date_reserve =  $this->input->post('date_reserve');

    $sql = "SELECT materialID FROM schedule WHERE date_reserve = ? AND start_time >= ? AND end_time <= ?";
    $query = $this->db->query($sql,array($date_reserve,$start,$end));

我用g:i:s在一个12小时时间格式进行格式化。 当我尝试呼应它,给了我12:00:0002:00:00它没有得到的AM/PM 。 而且还START_TIME和END_TIME在我的数据库中的数据类型是time 。 什么是检索数据,我应该在我的数据库使用的数据类型的正确方法。 谢谢!。

Answer 1:

假设你使用DATETIME -format在数据库这应该帮助你的数据类型:

$start =  date("h:i:s", strtotime($this->input->post('start')));
$end =  date("h:i:s", strtotime($this->input->post('end')));
...
$sql = "SELECT materialID FROM schedule WHERE date_reserve = ? AND TIME(start_time) >= ? AND TIME(end_time) <= ?";

编辑:所以如果你使用TIME-format ,你只需要改变你插入值的格式:

$start =  date("h:i:s", strtotime($this->input->post('start')));
$end =  date("h:i:s", strtotime($this->input->post('end')));


文章来源: How to get the data using >= AND <= in a 12hr time format in php/mysql?