- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- passaggio data da php a mysql
-
passaggio data da php a mysql
ciao a tutti
uso php5 e mysql5devo gestire delle date per ordinare degli acquisti per data (order by data_acquisto asc) usando le query sql su mysql e fare operazioni di confronto sulle date (where data_acquisto > oggi-3mesi).
ho un dubbio:
come gestisco le date nel form quando vado a inserire un'acquisto?
cioe' nel form di inserimento vorrei che compaia la data di oggi nel formato gg/mm/yyyy (cosi' suggerisco il formato, e nella maggior parte dei casi sara' quella definitiva)
**poi salvo nel database la data in un campo di tipo DATE. **In quale formato la salvo? (cioe' che valore gli passo al db)
Timestamp()
time()
o altro...grazie mille. e' veramente un forum interessante, ha molte sezioni che altri non hanno
-
Per facilità di utilizzo ti conviene mettere nel database nel formato time()
-
allora un possibile procedimento mi e' venuto in mente. ma non e' troppo complicato?
- nel form scrivo la data nel formato italiano gg/mm/yyyy
- quando passo i dati nella insert ci sara' una funzione che
- da data italiana la passi nel formato php yyyy-mm-dd
- poi una funzione che la trasformi in valore di secondi (la inversa di time() )
- cosi la memorizzo nel campo in formato DATE in mysql come secondie' giusto?
grazie mille
-
Si
puoi usare un explode per ottenere giorno,mese e anno
e usare la funzione mktime per trasforamre la data nel formato time
-
ok, forse per mysql non serve neanche portarlo a secondi il valore della data.
per il confronto in sql pensavo a timestampdiff(month, data1, data2) dove le date sono nel formato yyyy-mm-dd.quindi se devo trovare gli acquisti di luglio faro'
SQL="SELECT * FROM acquisti WHERE TIMESTAMPDIFF(month, data_acquisto, '2008-07-01') = 0 ORDER BY data_acquisto ASC"si lho provato funziona, mi sembra il modo meno complicato
-
Per le conversioni di date in MySQL sarebbe meglio utilizzare str_to_date()...
IMHO è molto più versatile.
-
Io di solito per gestire delle date creo nel form 3 campi (giorno - mese - anno) così poi tramite 'mktime' la trasformo in Timestamp e la posso gestire in Mysql (con FROM_UNIXTIME vado a scrivere e con UNIX_TIMESTAMP vado a leggere).
Le select sulle date invece le puoi effettuare con le funzioni MONTH e YEAR in fase di estrazione dati dal DataBase.
Cosa ne pensate ??
-
penso senza passate in unixtime e' piu semplice. non so se a lungo termine puo' dar problemi fare come sto facendo: mostro una data in formato ita gg/mm/yyyy, con explode la faccio diventare yyyy-mm-dd e la memorizzo nel campo in formato date. poi l'sql di mysql da' vari strumenti per lavorarci su.
poi se vogliono modificare l'ordine faccio di nuovo il passaggio (inverso questa volta) e la mostro gg/mm/yyyy nel campo.quando salvano si passa al passaggio di prima.