#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. Похоже, он использует текущее время, т. Е. Второго параметра нет. Так что это не имеет значения