Поиск в базе данных по произвольной дате в PHP - PullRequest
0 голосов
/ 22 марта 2010

Предположим, у вас есть система обмена сообщениями, встроенная в PHP с бэкэндом базы данных MySQL, и вы хотите поддерживать поиск сообщений с использованием произвольных строк дат.

База данных включает в себя таблицу сообщений с полем date_created, представленным как datetime.

Примеры произвольных строк дат, которые будут приняты пользователем, должны соответствовать тем, которые приняты strtotime.

В следующих примерах поиски, выполненные 21 марта 2010 года:

"26 января 2009" будет возвращать все сообщения в период с 2009-01-26 00:00:00 и 2009-01-27 00: 00: 00
«8 марта» будет возвращать все сообщения между 2010-03-08 00:00:00 и 2010-01-26 00: 00: 00
«Последняя неделя» будет возвращать все сообщения в период с 2010-03-14 по 00:00:00 и 2010-03-21 018: 25: 00
«2008» будет возвращать все сообщения между 2008-01-01 00:00:00 и 2008-12-31 00: 00: 00

Я начал работать с date_parse, но число переменных быстро росло. Интересно, изобретаю ли я колесо заново?

Есть ли у кого-нибудь предложение, которое бы работало либо как общее решение, либо как решение, которое охватило бы большую часть возможных входных строк?

1 Ответ

2 голосов
/ 22 марта 2010

Попробуйте strtotime Это очень хорошо угадывать даты

  • "На прошлой неделе"
  • «Следующая неделя»
  • "+ 15 дней"
  • "Последний вторник"
  • "31 октября"
  • и т.д.
...