установка codeigniter mysql datetime столбец в time () всегда устанавливает его в 0 - PullRequest
1 голос
/ 14 мая 2010

Я использую Codeigniter для небольшого проекта, и моя модель работает правильно, за исключением дат. У меня определен столбец:

create_at datetime не нуль

и мой код модели включает в свой массив, переданный в db-> insert:

'create_at' => time ()

В результате получается значение даты и времени 0000-00-00 00: 00: 00.

Когда я изменяю его на:

'made_at' => "from_unixtime (". Time (). ")"

все равно выдает значение даты-времени.

Что я делаю не так? Как я могу установить это поле в указанное время Unix? Кроме того, я знаю, что MySQL автоматически устанавливает столбцы TIMESTAMP для вас - меня это решение не интересует.

Пока я не могу найти полный пример этого в Интернете.

Ответы [ 2 ]

2 голосов
/ 14 мая 2010

datetime требует строку YYYY-MM-DD, где-как time () создает метку времени UNIX, которая является целым числом секунд с 1 января 1970 года. Эти две даты совершенно разные.

Если вы хотите использовать PHP для заполнения вашего поля даты и времени MySQL, вы должны использовать:

date('Y-m-d h:i:s');

Или что-то в этом роде в любом случае.

0 голосов
/ 02 июля 2011

Избегайте now(), потому что now() возвращает текущее время в виде метки времени Unix, привязанной либо к местному времени вашего сервера, либо к GMT, основываясь на настройке "эталона времени" в вашем файле конфигурации. Если вы не намерены устанавливать эталонное время в качестве основного времени по Гринвичу (что вы обычно делаете, если запускаете сайт, который позволяет каждому пользователю устанавливать свои собственные настройки часового пояса), использование этой функции над функцией PHP time() не имеет смысла.

...