Почему php / mysql делает «разницу» между датой в «Y-m-d» и датой в «Y-m-d H: i: s»? - PullRequest
0 голосов
/ 09 января 2019

Таким образом, я размышлял, как 2 часа, над следующей проблемой (и, в конце концов, смог решить ее, добавив, казалось бы, очень тривиальную деталь ...)

Я сравнивал несколько диапазонов дат из базы данных mysql на совпадение с диапазоном дат, запрошенным пользователем (userinput уже очищен).

Я использовал следующий оператор if из этой темы: Определите, перекрываются ли два диапазона дат

(StartA <= EndB)  and  (EndA >= StartB)

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

Теперь, как описано в заголовке, я отформатировал ввод даты от пользователя в формат «Y-m-d». Теперь все было хорошо, за исключением того, что когда конец введенного пользователем диапазона дат коснулся начала диапазона дат из базы данных. Затем условие не может обнаружить перекрытие. Я был очень смущен, и мне потребовалось 2 часа, прежде чем я, в отчаянии, попытался отформатировать в «Ymd H: i: s», который также является форматом в базе данных (с H: i: s, установленным в 00 : 00: 00) и посмотрим, что получится.

И вдруг все заработало нормально Оо Зачем? Я особенно смущен, потому что ЛЮБОЙ ДРУГОЙ случай был оценен правильно, только этот конкретный случай, описанный выше, не был. Теперь я уверен, что php должен автоматически делать или предполагать что-то о датах, когда они не имеют точно такой же формат. Но я не знаю, что именно это делает, и я действительно хочу знать, так как это может помочь мне в какой-то момент, когда сталкиваюсь с подобной проблемой.

Спасибо за ваш вклад!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...