Функция даты PHP

#php #mysql #codeigniter

#php #mysql #codeigniter

Вопрос:

Я пытаюсь сохранить текущую дату и время в базе данных MySQL, но при сохранении она сохраняется в другом формате:

  • Я использую date("Y-m-d H:i:s");
  • Но он хранится как 20/16/1017
  • Это должно быть 2016-10-17 15:23:23

Вид

 $date = date("Y-m-d H:i:s");
<input type="hidden"  name="date" id="date" value="<?php echo $date; ?>">
 

Модель

 function InsertAdd($data)
    {
        $this->db->insert('advertisements', $data);
    }
 

Контроллер

 $data = array(

                    'Date' => $this->input->post('date'),

                );
 

Примечание: — я изменил свой тип на datetime, а по умолчанию в базе данных mysql используется currenttime

Комментарии:

1. вы можете преобразовать его только в 2016-10-17 00:00:00

2. Так что, может быть, если бы вы поделились кодом, который фактически сохраняет данные в базе данных, мы могли бы сделать что-то другое, кроме догадок

3. Также было бы полезно знать тип данных столбца, в который вы сохраняете это значение даты!!!

4. @RiggsFolly: тип данных — Varchar, я думаю, потому что значение 20/16/1017 может быть

5. Покажите нам PHP-код, который вы используете для сохранения этого значения в базе данных Отредактируйте свой вопрос, не вставляйте код в комментарий

Ответ №1:

используйте strtotime для замены косой черты знаками — . Ниже должно работать:

   $date = date('Y-m-d h:i:s', strtotime(str_replace('/', '-', $date)));
 

Комментарии:

1. Не могли бы вы просто сократить его до $date = str_replace("/", "-", $date); ?

2. Похоже, он использует текущее время, т. Е. Второго параметра нет. Так что это не имеет значения