Я хочу сохранить дату в базе данных, но при отправке формы сохраняет дату как 1970-01-01

0

Это модель, используемая для хранения даты.

public function add_client() {

        $sqlDaye = "YYYY-MM-DD";

        $data = array(

            'name' => $this->input->post('client_name'),
            'industry_id' => $this->input->post('industry'),
            'user_id' => $this->input->post('users'),
            'status_id' => $this->input->post('status'),
            'startdate' => date("Y-m-d H:i:s", strtotime(str_replace('/', '-', $sqlDaye))),
            'enddate' => date("Y-m-d H:i:s", strtotime(str_replace('/', '-', $sqlDaye))),
            'rates' => $this->input->post('rates')
        );
        $this->db->insert('clients', $data);
    }
Теги:
codeigniter

2 ответа

2
 $sqlDaye = "YYYY-MM-DD";

YYYY-MM-DD является допустимым форматом, а не действительной датой. И вы выполняете strtotime на нем, что приводит к недопустимой strtotime времени, и вы получаете возвращаемое по умолчанию значение

StrToTime

Функция ожидает, что ей будет задана строка, содержащая английский формат даты, и попытается разобрать этот формат на отметку времени Unix (количество секунд с 1 января 1970 года 00:00:00 по UTC) по сравнению с меткой времени, указанной в настоящее время, или текущее время, если теперь не указано.

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

echo date("Y-m-d H:i:s", strtotime('2014-10-10'));
                                    ^
0
$sqlDaye = "YYYY-MM-DD";

Строка.

Вы не можете ввести строку в дату. '2014-11-10' - это дата.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню