假设您有一个带有MySQL数据库后端的PHP内置的消息系统,并且您想支持使用任意日期字符串搜索消息的搜索。

该数据库包括一个消息表,其中一个“ date_created”字段表示为DateTime。

用户将接受的任意日期字符串的示例应反映出那些被strttime接受的字符串。

对于以下示例,2010年3月21日进行搜索:

“ 2009年1月26日”将返回2009-01-26 00:00:00和2009-01-27 00:00:00之间的所有消息
“ 3月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,但是变量的数量迅速增长。我想知道我是否正在重新发明轮子。

是否有人有建议可以作为一般解决方案或可以捕获大多数可能输入字符串的建议?

有帮助吗?

解决方案

尝试 strtotime 它非常擅长正确猜测日期。

  • “上周”
  • “下周”
  • “ +15天”
  • “上个星期二”
  • “ 10月31日”
  • 等等
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top