如何在codeigniter的当前日期插入天间隔?
Posted
技术标签:
【中文标题】如何在codeigniter的当前日期插入天间隔?【英文标题】:How to insert day interval in current date in codeigniter? 【发布时间】:2015-02-09 20:37:32 【问题描述】:我需要在表格中添加开始日期和结束日期。所以 startdate 应该是当前日期,而结束日期应该是从当前日期起 30 天之后。我尝试按以下方式执行此操作,但未在表中插入记录。
public function insert_details()
$data = array(
'tran_id' => $transaction_id,
'start_date' => CURDATE(),
'end_date' => DATE_ADD(CURDATE() + INTERVAL 30 DAY)
);
$this->db->insert('user_payments', $data);
return $this->db->insert_id();
【问题讨论】:
我认为你不能这样做,因为活动记录会转义值。 【参考方案1】:因为,
DATE_ADD(CURDATE() + INTERVAL 30 DAY) are mysql functions,
您将它们视为 php 函数。
将它们作为字符串传递给 MySQL。
更改为:
'end_date' => "DATE_ADD(CURDATE() + INTERVAL 30 DAY)"
【讨论】:
在进行上述更改后,它会在两个字段中插入此值 0000-00-00【参考方案2】:如果要查询MySql函数,可以使用$this->db->set()
方法
public function insert_details()
$this->db->set('tran_id', $transaction_id);
$this->db->set('start_date', 'CURDATE()', false);
$this->db->set('end_date', 'DATE_ADD(CURDATE() + INTERVAL 30 DAY)', false);
$this->db->insert('user_payments');
return $this->db->insert_id();
【讨论】:
现在它显示此错误:错误号:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '))' 附近使用正确的语法echo $this->db-> last_query();
插入函数后显示查询的函数【参考方案3】:
试试这个
date('Y-m-d', strtotime(date('Y-m-d'). " + 30 days"));
【讨论】:
以上是关于如何在codeigniter的当前日期插入天间隔?的主要内容,如果未能解决你的问题,请参考以下文章