2016-07-29 68 views
0

这是我的模型的查询使用的日期当前日期添加功能笨

public function input_leave($effectivity){ 

    $input = array('ID_NUM' => $this->input->post('ID_NUM'), 
        'SOLO_P' => $this->input->post('SOLO_P'), 
        'DATE_ENTITLED' => date("Y-m-d"), 
        'EFFECTIVITY' => DATE_ADD(now("Y-m-d") ,INTERVAL .$effectivity. MONTH) 
        ); 
    $insert = $this->db->insert('tbl_leave',$input); 
    return $insert; 
} 

我想是做的是DATE_ADD(**the current date** ,INTERVAL .$effectivity. MONTH)

,但是当我现在()使用它不工作,我仍然不完全理解DATE_ADD函数,所以有人可以解释错误是什么,解决方案是什么。谢谢。

+0

'NOW()'不采取datetime格式字符串 –

回答

5

你在混淆MySQL的NOW()函数和PHP的date()函数。 MySQL的NOW()不带任何参数:

$input = array('ID_NUM' => $this->input->post('ID_NUM'), 
        'SOLO_P' => $this->input->post('SOLO_P'), 
        'DATE_ENTITLED' => date("Y-m-d"), 
        'EFFECTIVITY' => DATE_ADD(NOW() ,INTERVAL .$effectivity. MONTH) 
        ); 
    $insert = $this->db->insert('tbl_leave',$input); 
    return $insert; 
+0

所以我应该怎么做的PHP这样做呢? –

+0

我也试过CURDATE() –

+0

你可能想要回应那个查询并验证它是你所期待的。然后从命令行或像phpmyadmin这样的工具运行它,看看它是如何运行的。 –

0

你也可以像这样

$input = array('ID_NUM' => $this->input->post('ID_NUM'), 
       'SOLO_P' => $this->input->post('SOLO_P'), 
       'DATE_ENTITLED' => date("Y-m-d"), 
       'EFFECTIVITY' => date('Y-m-d', strtotime("+".$effectivity." months")) 
       ); 
$insert = $this->db->insert('tbl_leave',$input); 
return $insert;