0

我在这里有一个问题,当我从这个日期预订书时(例如 09/07/2013 作为预订日期,09/11/2013 作为到期日期)。为了检查它是否被没收,我注销然后将我的日历日期更改为 2013 年 9 月 11 日,然后当我刷新 login.form 时,它说网页有一个重定向循环。

<?php

class Login extends CI_Controller{

function index()
{
    $this->load->model('admin/confirmation_model');
    $data['confirmation'] = $this->confirmation_model->getConfirm();
    $data['main_content'] = 'login_form';
    $this->load->view('includes/template', $data);  

}
//added function update
function update($isbn){
    $statuses = 'Forfeited';
    $data = array(
        'status' => $statuses
    );

    $this->db->where('isbn',$isbn);
    $this->db->update('reserved_dummy',$data);

    $sql = 'update books set stock=stock+1 where isbn=?';
    $this->db->query($sql, $isbn);
    redirect('login');
}

这是我的观点:

<?php $date = date('m/d/Y'); 
      $tomorrow = date('m/d/Y',strtotime($date)); 
      if ($confirmation) { 
        foreach($confirmation as $r) { 
           if (date('m/d/Y',strtotime($r->date_expire . "+1 days")) == $tomorrow && $r->status != 'forfeited') { 
              redirect('login/update/'.$r->isbn,'location'); 
           } 
         } 
      } 
?>
4

1 回答 1

1

我相信这个问题可能与您使用“美国”风格的日期(m/d/Y)有关。对于计算机来说,这是一种非常模糊的格式。尝试以下操作,看看会发生什么。

全部更改date('m/d/Y')date('Y-m-d').

之所以; 因为当您传递'09/08/2013'到时strtotime(),PHP 会进行“猜测”。猜测的原因?几乎只有美国人以m/d/Y格式阅读他们的日期。例如,我将此日期读为9th of Aug, 2013,但美国人会说它是8th of September, 2013

如果您传递'2013-09-08'strtotime()没有混淆,因为这总是被解释为“Ymd”格式。

于 2013-09-08T09:24:16.803 回答