我有两个日期变量,date_from和date_to,我可以读取其中的每个值吗?


I have two date variables, date_from and date_to, Can I read in every value in between?

请原谅我在这方面缺乏知识,但我是PHP的新手。我们正在做一个关于codeigniter的项目,我快把头发拔出来了!

我正在做一个项目预订网站。在这里,用户可以按日期搜索属性,并在这些日期可用时提出预订请求。我有一个属性表、一个请求表(状态将根据主机是否接受而改变)和一个预订表。一旦主机接受来自用户的请求,请求的状态将在请求表中更新,并在预订表

中添加一个新条目。

我们的讲师要我们使用这个逻辑。

如果酒店在1月1日至5日预订,那么在这些日期的预订表中将有5条记录。

你能提供任何建议,我将如何做一个循环在每个日期之间和包括$date1和$date2读取?

这是我的控制器

public function acceptBooking()
{
    $request_id = $this->input->post('request_id');
    $user_id = $this->session->userdata('user_id');
    $property_id = $this->input->post('property_id');
    $date1= $this->input->post('date1');
    $date2 = $this->input->post('date2');
    $status = $this->input->post('status');
    $data = array(
        'request_id'=>$request_id,
        'user_id'=>$user_id,
        'property_id'=>$property_id,
        'date1' => $date1,
        'date2' => $date2,
        'status' => $status
    );
    $this->model_booking_status->update_status($request_id,$data);
    $this->model_booking_status->insert_bookingToDB();
    $this->load->view('view_accept_success');
}

和我的模型

public function insert_bookingToDB(){
    $user_id = $this->session->userdata('user_id');
    $property_id = $this->input->post('property_id');
    $date1= $this->input->post('date1');
    $date2 = $this->input->post('date2');
    $status = $this->input->post('status');
    for(*****){
            $sql = "INSERT INTO bookings(user_id,property_id,property_date)
    VALUES (" . $this->db->escape($user_id) . ",
            " . $this->db->escape($property_id) . ",
            " . $this->db->escape($property_date) .")";
            $result = $this->db->query($sql);
        }
}
function update_status($request_id,$data)
{
    $this->db->where('request_id', $request_id);
    $this->db->update('requests', $data);
}
}

我有函数update_status工作,它允许主机接受请求,并在数据库上更新以供用户查看。老实说,我不知道从哪里开始读取日期并将每个日期输入数据库的循环。我有***我的循环只是为了告诉你我在想什么,我的数据库上的日期格式是YYYY-MM-DD和预订表上的property_date。

非常感谢,如果我看起来像个白痴,我再次道歉!

解决:)

while (strtotime($date1) <= strtotime($date2)) {
        echo "$date1'n";
        //use +1 month to loop through months between start and end dates
        $date1 = date ("Y-m-d", strtotime("+1 day", strtotime($date1)));
        $sql = "INSERT INTO bookings(user_id,property_id,property_date)
    VALUES (" . $this->db->escape($user_id) . ",
            " . $this->db->escape($property_id) . ",
            " . $this->db->escape($date1) .")";
        $result = $this->db->query($sql);
    }

SOLVED

while (strtotime($date1) <= strtotime($date2)) {
    echo "$date1'n";
    //use +1 month to loop through months between start and end dates
    $date1 = date ("Y-m-d", strtotime("+1 day", strtotime($date1)));
    $sql = "INSERT INTO bookings(user_id,property_id,property_date)
VALUES (" . $this->db->escape($user_id) . ",
        " . $this->db->escape($property_id) . ",
        " . $this->db->escape($date1) .")";
    $result = $this->db->query($sql);
}