如何使用Codeigniter将JQuery datepicker中的值插入MySQL date数据类型?

cri*_*ano 6 php mysql jquery codeigniter

我无法使用Date数据类型将我的JQuery Datepicker中的值插入到我的MySQL数据库中.我将如何将字符串转换为日期数据类型?即时通讯使用Codeigniter与MVC.这是我的代码:

JavaScript的

<script>
$(function() {
    $( "#datepicker" ).datepicker({
        showOn: "button",
        buttonImage: "images/icons/calendar_24.png",
        buttonImageOnly: true,
        onSelect: function(dateText, inst){
            $("input[name='dob']").val(dateText);
        }
    });

});
</script>
Run Code Online (Sandbox Code Playgroud)

调节器

function create()
{
    $data = array(
        'FirstName' => $this->input->post('fname'),
        'DateofBirth' => $this->input->post('dob')
    );

    $this->site_model->add_record($data);
    $this->index();
}
Run Code Online (Sandbox Code Playgroud)

视图

<?php echo form_open('site/create');?>
<p>
    <label for="fname">First Name:</label>
    <input type="text" name="fname" />
</p>

<p>
    <input type="text" name='dob' id="datepicker" />
</p>
Run Code Online (Sandbox Code Playgroud)

多谢你们!我在谷歌读了一些解决方案,我这样做了:

控制器:

function create()
{
    $date = $this->input->post('dob');

    $data = array(
        'FirstName' => $this->input->post('fname'),
        'DateofBirth' => date('Y-m-d', strtotime($date))
    );

    $this->site_model->add_record($data);
    $this->index();
}
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题!:)

Tig*_*ger 5

我假设您的MySQL表的dob列是DATE类型. Datetype以yyyy-mm-dd例如的格式获取值2012-09-21

因此,要回答您的问题 - 您需要将日期从datepicker格式化为上述有效格式.例如,如果您的日期选择日期是dd-mm-yy您需要使用date()控制器中的php 函数将其转换为mysql日期格式的格式....(还有其他方法来处理datetime类等日期)

function create()
{
    $data = array(
        'FirstName' => $this->input->post('fname'),
        'DateofBirth' => date('Y-m-d', strtotime(str_replace('-', '/', $this->input->post('dob')))); 
    );

    $this->site_model->add_record($data);
    $this->index();
}
Run Code Online (Sandbox Code Playgroud)

使用strtotime时注意()

通过查看各个组件之间的分隔符来消除m/d/y或dmy格式的日期:如果分隔符是斜杠(/),则假设为美国m/d/y; 而如果分隔符是破折号( - )或点(.),则假定为欧洲dmy格式.