Formato Data ?!
Formato Data ?! postato il 30/05/2012 10:54:12 nel forum programmazione, open source e hosting
Come si evince dal titolo, vorrei un chiarimento (ok, più di un chiarimento, magari proprio un aiuto minuzioso) sul formato in cui si visualizza la data.
Per capirci, se io voglio registrare un determinato evento in un preciso momento con un'idea del genere...
"UPDATE Personaggio SET UltimaRole=NOW() WHERE Nome = '".pars($_SESSION['Login'])."'"
...che ovviamente funziona e va tutto bene, non riesco però a fare una cosa. Nulla di che, una piccolezza ma vorrei se possibile metterla come dico io:
SET qualcosa=NOW() mi inserisce nel database una data ovviamente con formato all'inglese, cioè anno/mese/giorno. Come si fa a dirgli che io invece voglio una normalissima data di quelle che si usano dalle nostre parti quindi giorno/mese/anno?
Grazie <3
Pagine → 1
30/05/2012 11:07:31
Semplicemente non lo fai.
Il formato del campo DATETIME o DATE in MySql è: aaaa-mm-gg hh:mm:ss
Non si può cambiare.
Stai ragionando al contrario. Il modo con cui memorizzare i dati viene imposto da MySql non da te. Ma tu hai pieno potere su come visualizzare i dati. In altri termini i dati li memorizzi come vuole MySql poi quando li tiri fuori dal db li trasformi nel formato che preferisci. In php è veramente facile
$laMiaData=date("j-n-Y G:i",strtotime($dataDaMySql));
Per ulteriori dettagli:
http://it.php.net/manual/en/function.date.php ↗
http://it.php.net/manual/en/function.strftime.php ↗
30/05/2012 11:55:36 e modificato da nuprestige il 30/05/2012 11:57:39
leoblacksoul ha scritto: Semplicemente non lo fai.
Il formato del campo DATETIME o DATE in MySql è: aaaa-mm-gg hh:mm:ss
Non si può cambiare.
Stai ragionando al contrario. Il modo con cui memorizzare i dati viene imposto da MySql non da te. Ma tu hai pieno potere su come visualizzare i dati. In altri termini i dati li memorizzi come vuole MySql poi quando li tiri fuori dal db li trasformi nel formato che preferisci. In php è veramente facile
$laMiaData=date("j-n-Y G:i",strtotime($dataDaMySql));
Per ulteriori dettagli:
http://it.php.net/manual/en/function.date.php ↗
http://it.php.net/manual/en/function.strftime.php ↗
Grazie Leo, in effetti si, non devo modificare i dati che entrano nel database ma quelli che escono. Perfetto, funziona tipo così:
<?= strftime("%d/%m/%Y", strtotime($ultimaazione)) ?>
Però ora ti chiedo una cosa, perchè se nel database manca la data lui mi mette quella di oggi in automatico, ma questo per la gestione può essere fuorviante xD
Mi aiuti a fare un if basandoti su questa riga che dica che se $ultimaazione non c'è, non deve apparire alcuna data?
Io ci ho provato ma non gli piaccio, mi dice sempre che la scrivo male eppure la scrittura di un if non è astrusa.
ç_____ç grazie leo
30/05/2012 12:20:00
Ma se vuoi mettere una data che non sia quella attuale nel campo del database, puoi inserire un valore predefinito che poi si modificherà appena ci sarà l'ultima azione, aggiornandosi poi di volta in volta.
30/05/2012 13:34:58 e modificato da leoblacksoul il 30/05/2012 13:35:54
nakamaro ha scritto: Ma se vuoi mettere una data che non sia quella attuale nel campo del database, puoi inserire un valore predefinito che poi si modificherà appena ci sarà l'ultima azione, aggiornandosi poi di volta in volta.
THIS. Anche se in realtà non ci ho mai provato XD
Però ora ti chiedo una cosa, perchè se nel database manca la data lui mi mette quella di oggi in automatico, ma questo per la gestione può essere fuorviante xD
Mi aiuti a fare un if basandoti su questa riga che dica che se $ultimaazione non c'è, non deve apparire alcuna data?
Volendo rispondere direttamente alla tua domanda: se la data non c'è vuol dire che il campo di MySql è NULL. Quindi in PHP arriva una stringa vuota o un null. La funzione date o strftime accetta due parametri, di cui il secondo opzionale; opzionale evidentemente in questo caso significa che l'argomento non c'è proprio oppure che è nullo. Se è nullo viene messa la data di adesso.
Il controllo è abbastanza semplice:
if(!empty($ultimaazione)){
echo strftime("%d/%m/%Y", strtotime($ultimaazione));
}
30/05/2012 13:49:56 e modificato da nuprestige il 30/05/2012 13:50:51
Avevo anche trovato la quadra, funzionava con
<? if ($ultimaazione == "") {
$ultimaazione = ""; } else {
echo (strftime("%d/%m/%Y %H:%M", strtotime($ultimaazione))); } ?>
Ma mi piace di più quello di leo, più immediato.
Grazie anche agli altri ;)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Seconda Era ↗
CRSED: F.O.A.D. ↗
Fallen Gods ↗
Foundation Galactic Frontier ↗
World of Tanks ↗