Azzurra IRC Network Forum

PHP e date

liquid_snake · 17/01/2005 16:31 · #1
riscontro qualche problema con la funzione date().
In pratica non interagisce con la variabile timestamp che gli do per generarmi una data, quindi se scrivo la funzione echo (date( D d-m-Y,$data)) mi da un risultato sbagliato e più precisamente il limite di range impostato dalla funzione ( 01-01-1970)

Nel caso di echo(date($data)) il timestamp è pero' giusto, e anche echo(date(D d-m-Y)) e' giusto, pero' ovviamente quest'ultimop mi restituisce la data odierna.
Ho provato a cercare su php.net ma non vengono fatti esempi sulla visualizzazione di date estrapolate da query a database, quindi non ho potuto controllare la sintassi corretta.
Se qualcuno conosce l'errore che ho commesso oppure una funzione piu' adatta al mio caso ...
Progeny · 17/01/2005 20:26 · #2
il timestamp deve essere espresso come in unix date (numero di secondi trascorsi dal 1 gennaio 1970).

tempo fa avendo bisogno di una formattazione "particolare" (non ricordo cosa mi serviva di preciso :D) scrissi questa funzione, forse ti puo' essere d'aiuto..


function mysql_format_date($date) {
include("dbhead.php");
$query = "SELECT DATE_FORMAT('$date', '%d/%m/%Y')";
$result = mysql_query($query, $db);
$res = mysql_fetch_row($result);
return $res[0];
}
liquid_snake · 17/01/2005 22:07 · #3
forse non capisco la funzione o forse non c'e scritto, quindi ti complico la vita :-)
come faccio a salvare un dato unix timestamp in mysql?
e poi come lo tiro fuori correttamente sto date() ?
Progeny · 21/01/2005 15:45 · #4
al seguente link c'è tutto quello che serve per usare la funzione date()
http://it.php.net/manual/en/function.date.php
liquid_snake · 23/01/2005 20:46 · #5
ho risolto più o meno:
nel senso che la pagina di manuale non mi ha aiutato e quindi ho optato per un'atra srada cioè quella di scomporre il timestamp e poi con una piccola funzione convertire i numeri dei mesi in nomi, di li gli do un'altra visualizzazione.
Poco professionale? purtroppo si lo so !!!
Progeny · 24/01/2005 15:24 · #6
Come riporta l'esempio nella documentazione della funzione date()

$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm

ti basterebbe:
$mese = date("F", $timestamp);

per ottenere la data in ita ti basterebbe poi un setlocale(LC_TIME, 'it-IT');
oppure fatti una funzione per i mesi in ita :)
}gu|do[z]{®© · 28/01/2005 13:10 · #7
per ottenere la data in ita ti basterebbe poi un setlocale(LC_TIME, 'it-IT');


questo non funge sempre.. la cos amigliore è farsi un array

$mesi = array('gennaio','febbraio'.... etc etc);

e poi usare come indice dell'array il valore numerico restituito da date con non ricordo quale flag [vedere manuale :D]

ciauz