Я написал функцию для изменения формата даты для сохранения в базе данных от d-m-y
до y-d-m
. Необработанная строка с исходной датой корректно сохраняется с запросом на вставку, но форматированная строка - нет.Вставить DATE неожиданное поведение. Зачем?
Структура таблицы:
+-------+------+
| Field | Type |
+-------+------+
| id | INT()|
+-------+------+
| date1 | DATE |
+-------+------+
| date2 | DATE |
+-------+------+
PHP:
<?php
$db = new mysqli("localhost","root","","test");
function date2Store($date) {
$dateFormat = DateTime::createFromFormat('d-m-y',$date);
return $dateFormat->format('y-d-m');
}
$dateRaw = "22-01-17";
$dateFormatted = date2Store($dateRaw);
echo $dateFormatted; // Checking how the string looks
$query = "INSERT INTO dateTest(date1,date2) VALUES ('$dateFormatted','$dateRaw')";
echo $query; // Checking how the query looks
$db->query($query);
?>
Результатом этого является:
+----+------------+------------+
| id | date1 | date2 |
+----+------------+------------+
| 1 | 0000-00-00 | 2022-01-17 |
+----+------------+------------+
за $ печатает запрос:
INSERT INTO dateTest(date1,date2) VALUES ('17-22-01','22-01-17')
Я проверил, что обе строки, запрос выглядит правильно. Почему они хранят разные?
Хорошо, глупый, я искал ошибку в неправильном направлении. Я форматировал 'y-d-m', когда он' y-m-d'. Спасибо, что указал мне. – MarioZ