0

MySQLデータベースバックエンドを備えたPHPで構築されたメッセージングシステムがあり、任意の日付文字列を使用したメッセージの検索をサポートしたいとします。

データベースにはメッセージテーブルが含まれており、「date_created」フィールドは日時として表されます。

ユーザーが受け入れる任意の日付文字列の例は、strtotimeが受け入れるものを反映している必要があります。

次の例では、2010年3月21日に実行された検索:

「2009年1月26日」は、2009-01-2600:00:00から2009-01-2700 :00:00までのすべてのメッセージを返します
。「3月8日」は、2010-03-0800:00までのすべてのメッセージを返します。 00と2010-01-2600 :00:00「
先週」は2010-03-1400:00:00と2010-03-2180:25:00
の間のすべてのメッセージを返します「2008」はその間のすべてのメッセージを返します2008-01-0100:00:00および2008-12-3100:00:00

date_parseを使い始めましたが、変数の数が急速に増えました。車輪の再発明をしているのだろうか。

一般的な解決策として、または可能な入力文字列のほとんどをキャプチャするものとして機能する提案がありますか?

4

1 に答える 1

2

試しstrtotime てみてください日付を正しく推測するのは非常に得意です。

  • "先週"
  • "次の週"
  • 「+15日」
  • 「先週の火曜日」
  • 「10月31日」
于 2010-03-21T22:45:53.553 に答える