Ricerca del database per data arbitraria in PHP
-
21-09-2019 - |
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?
Soluzione
Provare strtotime
È molto bravo a indovinare le date correttamente.
- "La settimana scorsa"
- "La prossima settimana"
- "+15 giorni"
- "Lo scorso martedì"
- "31 ottobre"
- eccetera.