Как вставить значения из датпикера JQuery в формат даты в MySQL с помощью Codeigniter?

Я не могу вставить значения из моего JQuery Datepicker в мою базу данных MySQL с типом данных Date. как я буду преобразовывать строковый формат даты? im используя 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> 

контроллер

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

Посмотреть

 <?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> 

Спасибо, парни! я прочитал некоторое решение в google, и я сделал это:

контроллер:

 function create() { $date = $this->input->post('dob'); $data = array( 'FirstName' => $this->input->post('fname'), 'DateofBirth' => date('Ym-d', strtotime($date)) ); $this->site_model->add_record($data); $this->index(); } 

и это решило мою проблему! 🙂

Related of "Как вставить значения из датпикера JQuery в формат даты в MySQL с помощью Codeigniter?"

Я предполагаю, что столбец dob таблицы MySQL имеет тип DATE . Тип Date принимает значение в формате yyyy-mm-dd например 2012-09-21

Поэтому, чтобы ответить на ваш вопрос – вам нужно отформатировать дату с даты date до того, как вы вернетесь. например, если дата даты дат находится в формате dd-mm-yy , вам необходимо преобразовать ее в формат даты mysql, используя функцию date() php в вашем контроллере …. (Существуют и другие методы обработки дат, таких как класс даты и времени)

 function create() { $data = array( 'FirstName' => $this->input->post('fname'), 'DateofBirth' => date('Ym-d', strtotime(str_replace('-', '/', $this->input->post('dob')))); ); $this->site_model->add_record($data); $this->index(); } 

ПРИМЕЧАНИЕ при использовании strtotime ()

Даты в форматах m / d / y или dmy устраняются неоднозначно, глядя на разделитель между различными компонентами: если разделитель является косой чертой (/), то предполагается, что американский m / d / y; тогда как если разделитель является тире (-) или точкой (.), тогда предполагается европейский формат dmy.

 <script> $(function() { $( "#datepicker" ).datepicker({ showOn: "button", buttonImage: "images/icons/calendar_24.png", buttonImageOnly: true, dateFormat: 'Ymd' // No need to add onselect , value selected will automatically be added to input field #datepicker }); }); </script> 

Ваш код в порядке

 $(document).ready(function() { var year=new Date().getFullYear(); var yearTo=year-18; var yearFrom=year-100; //display the years from hundred years in the past till 18 years in the past $( "#datePickerDOB" ).live("click",function(){ $( "#datePickerDOB" ).datepicker({ changeMonth: true, changeYear: true, yearRange: yearFrom+":"+yearTo, dateFormat: "dd-mm-yy" }); }); }); 

Для форматирования datepicker используйте следующее:

$ ('# datepicker'). datepicker ({dateFormat: 'yy-mm-dd'});

Ваш контроллер должен выглядеть так:

 { $date = $this->input->post('dob'); $data = array( 'FirstName' => $this->input->post('fname'), 'DateofBirth' => date('Ym-d', strtotime($date)) ); $this->site_model->add_record($data); $this->index(); } 

Я думаю, это тебе подходит лучше