Дата и время с URL-адреса должны быть в формате YYYY-MM-DD-HH-II-SS. Я хочу проверить его правильность и вставить в базу данных в столбце формата timestamp mysql.php check datetime from url
1) С $timestamp = $this->input->get('time_from')
Получаю его с url.
2) Перед вставкой в базу данных я пытаюсь ее распечатать.
if (! empty($timestamp)) {
$timestamp = date_create_from_format('Y-m-d-H-i-s', $timestamp);
if (! $timestamp)
echo date_format($timestamp, 'Y-m-d H:i:s');
}
3) Я получаю, что этот год может быть до 1970 года, например, 1950-01-01-10-32-01 является правильной этой проверкой. Но такую дату в столбце mysql невозможно вставить. 4) Я получаю, что 2012-02-31-10-00-00 автоматически преобразуется в 2012-03-02 10:00:00.
Вопросы: как избежать этих запутанных автоматических преобразований? Каков наилучший способ обеспечить такую проверку?
Мне не нужны даты до 1970 года. Я продолжаю использовать TIMESTAMP. Функция checkdate также не дает возможности проверить, удовлетворяет ли она требованиям timestamp mysql. – Anton
Если вы посмотрите на документацию MySQL, на которую я предоставил вам ссылку, вы можете увидеть диапазон дат, который позволяет тип Timestamp и проверять их. Вы можете использовать checkmate, чтобы узнать, действительна ли дата - если это не так, она будет «преобразована», как вы описали в своем # 4. –