Дата изменяется при вставке даты в базу данных с помощью обработки ajax (CodeIgniter) - PullRequest
0 голосов
/ 22 апреля 2019

Я использую платформу CodeIgniter и использую jQuery и ajax для вставки данных из входных данных. Проблема в том, что дата меняется, когда я обрабатываю ее в ajax. Я использую MySQL для базы данных, и тип данных - Дата.

Я пытался изменить форматы для даты, потому что это может быть не тот формат.

Jquery / Ajax:

    $(document).on('submit', '#insertQL_form', function(event){
      event.preventDefault();
      var month = $('#datetimepicker1').val();
      var nameCompany = $('#nameCompany').val();
      var email = $('#email').val();
      var position = $('#position').val();
      var ojLink = $('#ojLink').val();
      var remarks = $('#remarks').val();
      var withTestTask = $('#withTestTask').val();
      var testTaskStatus = $('#testTaskStatus').val();
      var withInterview = $('#withInterview').val();
      var overallStatus = $('#overallStatus').val();
      alert(month);
      $.ajax({
        url:"<?php echo base_url() . 'home/insertQL'?>",
        method:'POST',
        data: new FormData(this),
        contentType:false,
        processData:false,
        success:function(data)
        {
            alert(data);        
        }
      });
    });

Функция контроллера:

    public function insertQL()
    {
         if($_POST["action"] == "Add")
         {
            $insert_data = array(
                'month' =>  date("Y-m-d",$this->input->post('month')),
                'nameCompany' => $this->input->post('nameCompany'),
                'email' => $this->input->post('email'),
                'position' => $this->input->post('position'),
                'ojLink' => $this->input->post('ojLink'),
                'remarks' => $this->input->post('remarks'),
                'withTestTask' => $this->input->post('withTestTask'),
                'testTaskStatus' => $this->input->post('testTaskStatus'),
                'withInterview' => $this->input->post('withInterview'),
                'overallStatus' => $this->input->post('overallStatus')
            );
            $this->load->model('QLModel');
            $this->QLModel->insert_crud($insert_data);
            echo 'Data Inserted';
         }
    }

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Вы должны попробовать это перед тем, как вставить в свою базу данных.

$m = strtr($this->input->post('month'), '/', '-');

, а затем вставить это следующим образом.

'month' =>  date('Y-m-d', strtotime($m)),

Дайте мне знать результат.

0 голосов
/ 22 апреля 2019

1970-01-01 эта дата хранится в MySQL, когда она не может преобразовать данную дату в конкретный формат даты в MySQL, равный Year-month-day. Используйте этот код для устранения этой проблемы,

    function mformat_date($date_string)
    {
            // Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a 
            // slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is
            // assumed.

            return strtotime(implode('-', array_reverse(explode('/', $date_string))));
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...