我在这里有一个问题,那时我从这个日期预订了书籍(例如2013年7月9日作为保留日期和09/11/2013作为到期日期)。要检查它是否被没收,我注销然后将我的日历日期更改为09/11/2013,然后当我刷新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');
}
}
}
?>
答案 0 :(得分:1)
我认为这个问题可能与你使用“美国式”日期(月/日)有关。这是一种非常模糊的计算机格式。尝试以下操作,看看会发生什么。
将所有date('m/d/Y')
更改为date('Y-m-d')
。
原因;因为当你将'09/08/2013'
传递给strtotime()
时,PHP会做出“猜测”。猜测的原因?几乎只有美国人以m/d/Y
格式阅读他们的日期。例如,我将此日期视为 2013年8月9日,但美国人会说这是 2013年9月8日。
如果您将'2013-09-08'
传递给strtotime()
,则不会产生混淆,因为它总是被解释为'Y-m-d'格式。