0

在 CodeIgniter 中,我想在包含“现在”时间戳的数据库中插入一行。

$message_row = array(
            "sender_email" => $recruiter_email,
            "recipient_email" => $recruiter_email,
            "message" => $recruiter_email,
            "send_date" => "NOW()" // hmmm how do I do this?
        );

$this->db->insert('messages', $message_row);

如果我使用"NOW()"它只会输入字符串,而不是实际让 MySQL 使用它的NOW关键字。

4

2 回答 2

1

为了在 CodeIgniter 中使用 NOW() 函数,您需要使用“set”函数

$table = 'user';    

$message_row = array(
        "sender_email" => $recruiter_email,
        "recipient_email" => $recruiter_email,
        "message" => $recruiter_email
    );

$this->db->set('send_date', 'NOW()', false);

$this->db->insert($table, $message_row);
于 2017-10-09T18:49:55.603 回答
0

如果您需要了解时区,我建议您以 UTC 格式存储日期时间。
所以:

   $now = new DateTime ( NULL, new DateTimeZone('UTC'));
   $message_row = array(
        "sender_email" => $recruiter_email,
        "recipient_email" => $recruiter_email,
        "message" => $recruiter_email,
        "send_date" => $now->format('Y-m-d H:i:s')
    );

当您检索信息时,您必须知道用户的时区,使用包含 send_date 的 $row:

$then = new DateTime( $row->send_date, new DateTimeZone('UTC'));
$then->setTimeZone(new DateTimeZone($userstimezone));
echo $then->format('Y-M-D H:i:s');
于 2013-10-23T08:43:29.800 回答