Domanda

Supponiamo che tu abbia un sistema di messaggistica integrato in PHP con un backend di database MySQL e desideri supportare la ricerca di messaggi utilizzando stringhe di data arbitrarie.

Il database include una tabella di messaggi, con un campo "Date_Created" rappresentato come DateTime.

Esempi delle stringhe di data arbitrarie che sarebbero accettate dall'utente dovrebbero rispecchiare quelle accettate da Strtotime.

Per i seguenti esempi, le ricerche eseguite il 21 marzo 2010:

"26 gennaio 2009" restituirebbe tutti i messaggi tra il 2009-01-26 00:00:00 e il 2009-01-27 00:00:00
"8 marzo" restituirebbe tutti i messaggi tra 2010-03-08 00:00:00 e 2010-01-26 00:00:00
"La scorsa settimana" restituirebbe tutti i messaggi tra 2010-03-14 00:00:00 e 2010-03-21 018: 25: 00
"2008" restituirebbe tutti i messaggi tra 2008-01-01 00:00:00 e 2008-12-31 00:00:00

Ho iniziato a lavorare con Date_Parse, ma il numero di variabili è cresciuto rapidamente. Mi chiedo se sto reinventando la ruota.

Qualcuno ha un suggerimento che funzionerebbe come una soluzione generale o che catturerebbe la maggior parte delle possibili stringhe di input?

È stato utile?

Soluzione

Provare strtotime È molto bravo a indovinare le date correttamente.

  • "La settimana scorsa"
  • "La prossima settimana"
  • "+15 giorni"
  • "Lo scorso martedì"
  • "31 ottobre"
  • eccetera.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top