Espansione serverfarm: siglato accordo per raddoppio banda!


1 utente stanno visualizzando questa discussione: (0 membri, e 1 visitatore).
 
Valutazione discussione:
  • 0 voti - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Gestire le date
03-04-2010, 18:35 (Questo messaggio è stato modificato l'ultima volta il: 03-04-2010 18:42 da Luca.)
Messaggio: #1
Gestire le date
Salve..
premesso che sono un profano di PHP e che sto lottando un po' su questa cosa e non ne vengo a capo nonostante penso sia una cavolata.

In una tabella di un database mysql i dati hanno un campo del tipo "datetime" quindi i valori sono di questo tipo: 2010-03-31 23 24 53.
In poche parole vorrei visualizzare in una pagina con PHP separatamente giorno, mese e anno.. il mese magari in lettere.
Come dovrei fare?
L'unico modo in cui ci sono riuscito per ora è usando per 2 volte la funzione "explode" una volta col carattere "-" e l'altra con " " ma mi sembra assurdo dover fare così.
Trova tutti i messaggi di questo utente
03-04-2010, 19:58
Messaggio: #2
RE: Gestire le date
Be no, non è assurdo, è un buon metodo.
Oppure, spacchi la data direttamente tramite mysql usando le funzioni date_format (o una cosa simile).
Così facendo ti crei delle colonne virtuali con i dati già separati, ma quanto a prestazioni credo sia più rapido il metodo PHP.

O se no, anzichè salvare la data in un campo date di mysql lo salvi in un campo di tipo INT con al suo interno il timestamp unix (time() di php) e spacchi la data usando la funzione date() di php.

:alcool::alcool: :adminpower: :alcool::alcool:

Web4Web.IT - Low Cost Hosting
Pacchetti multidominio a partire da € 10,00
Visita il sito web di questo utente Trova tutti i messaggi di questo utente
03-04-2010, 21:32
Messaggio: #3
RE: Gestire le date
Grazie mille.. se è più rapido col php lo tengo così :-), io pensavo ci fosse un funzione proprio per questo scopo in php e sono impazzito per cercarla. Ho utilizzato un array per sostituire i numeri dei mesi con i rispettivi nomi e sembra funzionare bene.
Per utilizzare il timestamp unix direttamente nel database avrei dovuto pensarci prima (conseguenze dell'essere pivelli ;-)).. sarà per la prossima volta.
Trova tutti i messaggi di questo utente
04-04-2010, 10:16
Messaggio: #4
RE: Gestire le date
Be puoi sempre cambiare i dati.
aggiungi una colonna temporanea e fai una update usando UNIX_TIMESTAMP di mysql salvando il valore nella colonna temporanea.

Poi elimini la colonna con la data e rinomini quella temporanea.
Noi salviamo le date sempre in timestamp. Ti permette di andare avanti ed indietro temporalmente semplicemente contando i secondi.

:alcool::alcool: :adminpower: :alcool::alcool:

Web4Web.IT - Low Cost Hosting
Pacchetti multidominio a partire da € 10,00
Visita il sito web di questo utente Trova tutti i messaggi di questo utente
04-04-2010, 15:20 (Questo messaggio è stato modificato l'ultima volta il: 04-04-2010 15:21 da Pirosauro.)
Messaggio: #5
RE: Gestire le date
in MySQL 5 esistono alcune funzioni per la minipolazione dei datetime (vedi http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html)
Tuttavia, di solito, è consigliabile usare lo unix timestamp, in quanto int occupa meno risorse ed è più facilmente gestibile (come giustamente suggerito da Gandalf)

[email protected] ha i poteri della super mucca
________
: http://it.linkedin.com/in/pirosauro - Website (offline)
Visita il sito web di questo utente Trova tutti i messaggi di questo utente
04-04-2010, 15:28 (Questo messaggio è stato modificato l'ultima volta il: 04-04-2010 15:28 da Gandalf.)
Messaggio: #6
RE: Gestire le date
(04-04-2010 15:20)Pirosauro Ha scritto:  : https://www.web4web.it/forum/post-1593.html#pid1593(come giustamente suggerito da Gandalf)

Questo infatti spiega perchè :boss: Big Grin Big Grin Big Grin

Scherzi a parte, suggerisco vivamente di salvare il timestamp.
Accedere manualmente al db potrebbe diventare problematico, perchè le date sarebbero "illeggibili", ma lato PHP potresti passare da un giorno a +973 giorni semplicemente sommando 86400*973 alla data odierna e così via. Una semplicissima somma ed il gioco è fatto. Stessa cosa per tornare indietro....

:alcool::alcool: :adminpower: :alcool::alcool:

Web4Web.IT - Low Cost Hosting
Pacchetti multidominio a partire da € 10,00
Visita il sito web di questo utente Trova tutti i messaggi di questo utente
05-04-2010, 03:07
Messaggio: #7
RE: Gestire le date
Mi avete convinto anche se pensandoci bene dovrei cambiare
il codice in diversi punti... (scusatemi se userò esprimermi non
proprio da programmatore). In lettura credo che non dovrei
cambiare niente perché uso i dati di quella colonna semplicemente
per visualizzare i dati in ordine (dal più recente) quindi il codice
è lo stesso giusto?
Per quanto riguarda la "scrittura" invece utilizzo questo codice
per inserire data e ora corrente nella colonna di tipo "datetime":

$this->added = date('Y-m-d H:iConfused') ;

Va bene se la cambio così per inserire invece il timestamp attuale?

$this->added = time() ;

E per quanto riguarda la modifica dei dati esistenti procedo così?

1 - creo da phpMyadmin una nuova colonna di tipo int che chiamerò per esempio added2;

2 - per "riempirla" dalla colonna added ho capito che dovrei utilizzare UNIX_TIMESTAMP ma non riesco a capire come :-( oltre a php sono un pivello anche in sql

3 - cancello la colonna added e rinomino added2
Trova tutti i messaggi di questo utente
05-04-2010, 12:02
Messaggio: #8
RE: Gestire le date
Quello che dici è tutto corretto.
Per il punto 2, dovresti fare una update di sto tipo:

UPDATE tabella SET nuovadata = UNIX_TIMESTAMP(datavecchia)

non testato, ma il concetto è quello.

:alcool::alcool: :adminpower: :alcool::alcool:

Web4Web.IT - Low Cost Hosting
Pacchetti multidominio a partire da € 10,00
Visita il sito web di questo utente Trova tutti i messaggi di questo utente
05-04-2010, 13:50 (Questo messaggio è stato modificato l'ultima volta il: 05-04-2010 13:52 da Luca.)
Messaggio: #9
RE: Gestire le date
Al posto di "nuovadata" e "datavecchia" dovrei mettere i nomi delle relative colonne.. giusto?
Un altra cosa.. tra i tipi che si possono dare a un campo ho visto che c'è anche "timestamp" mentre mi avete suggerito di mettere "int" c'è un motivo particolare?
Ho visto anche che in "predefinito" c'è la voce "CURRENT_TIMESTAMP" ha senso selezionarla o metto "None"?
Trova tutti i messaggi di questo utente
05-04-2010, 18:25
Messaggio: #10
RE: Gestire le date
(05-04-2010 13:50)Luca Ha scritto:  : https://www.web4web.it/forum/post-1598.html#pid1598Un altra cosa.. tra i tipi che si possono dare a un campo ho visto che c'è anche "timestamp" mentre mi avete suggerito di mettere "int" c'è un motivo particolare?

timestamp è un 19 caratteri nello stesso formato datetime, mentre int... beh spero tu sappia cos'è Big Grin Big Grin

(05-04-2010 13:50)Luca Ha scritto:  : https://www.web4web.it/forum/post-1598.html#pid1598Ho visto anche che in "predefinito" c'è la voce "CURRENT_TIMESTAMP" ha senso selezionarla o metto "None"?

dipende ... non c'è una risposta che sia valida per tutti, devi decidere te in base alle tue esigenze

[email protected] ha i poteri della super mucca
________
: http://it.linkedin.com/in/pirosauro - Website (offline)
Visita il sito web di questo utente Trova tutti i messaggi di questo utente


Altri utenti che stanno visualizzando questa discussione

1 utente stanno visualizzando questa discussione: (0 membri, e 1 visitatore).
   
Vai al forum:


Permessi di scrittura
Non puoi inserire nuove discussioni.
Non puoi inserire risposte.
Non puoi inserire allegati.
L' HTML è disattivato.
Il MyCode è attivato.
Le faccine sono attivato.
Il codice [img] è attivato.