formato date in italiano

Ciao

In una tabella del db ho un campo con la data nel formato date, una cosa del tipo 2008-01-12.

Quando la richiamo me la ritrovo nello stesso formato.

Vorrei stamparla invece o così: 12-01-2008 oppure:

12 gennaio 2008.

Come si fa?

grazie

inviato 8 anni fa
frankphp
X 0 X

Questa discussione è stata ampiamente disccussa in molti topic su questo forum, basterebbe fare una ricerca.

Ma comunque :

<?php
        $data = '2008-01-12';
        $mesi = array(
                'gennaio',
                'febbraio',
                'marzo',
                'aprile',
                'marzo',
                'giugno',
                'luglio',
                'agosto',
                'settembre',
                'ottobre',
                'novembre',
                'dicembre'
        );
        list($anno, $mese, $giorno) = split('-', $data);
        $mese = $mesi[$mese];
        $data = $giorno . ' ' . $mese . ' ' . $anno;
        
        echo $data;

vedi un po che ti riporta, l'ho scritto di getto senza provarlo.

:bye:

               

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
modificato 8 anni fa
X 0 X

piccola modifica:

$mesi = array(

                1 => 'gennaio',

                'febbraio',

                ...

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ops, è vero, così il conteggio degli elementi inizia da 1.

Sarebbe comunque meglio fare $mese = $mesi[$mese - 1];

almeno l'array rimane leggibile :D

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Proviamo

risposto 8 anni fa
frankphp
X 0 X

C'è qualcosa che non va

ho fatto così:

.....
while($rowcust = mysql_fetch_array($querycust) )
{
$mesi = array(1 =>'gennaio',
                'febbraio',
                'marzo',
                'aprile',
                'marzo',
                'giugno',
                'luglio',
                'agosto',
                'settembre',
                'ottobre',
                'novembre',
                'dicembre'
        );
$data = $rowcust["giorno"];
list($anno, $mese, $giorno) = split('-',$data);

        $mese = $mesi[$mese];
        $data = $giorno . ' ' . $mese . ' ' . $anno;
echo "<TR>
      <TD>
         $rowcust[username]
      </TD>
      <TD>&nbsp;
         $rowcust[email]
      </TD>
      <TD>&nbsp;
      </TD>     
      <TD>&nbsp;$rowcust[scritta]</TD>     
    
      <TD>&nbsp;$data</TD>

..........

mi stampa solo 18 2008

invece che 18 gennaio 2008 ad esempio.

Qui :

 $mese = $mesi[$mese];

Poi per controllo ho fatto così:

 $mese = $mesi[1];

In questo caso il mese me lo stampa ma mi ritrovo scritto "gennaio" anche per gli altri utenti che non hanno

imput (al posto di uno spazio vuoto).

Se modifico ancora in questo modo:

list($anno, $mese, $giorno) = split('-',$data);

   
        $data = $giorno . ' ' . $mese . ' ' . $anno;

mi ritrovo con il formato italiano: 18 01 2008

ma ovviamente senza il mese per esteso..potrei anche accontentarmi ma voglio capire cosa c'è che non va.

Grazie

risposto 8 anni fa
frankphp
modificato 8 anni fa
X 0 X

cambia

$mese = $mesi[$mese];

in

$mese = $mesi[(int)$mese];

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

cambia

$mese = $mesi[$mese];

in

$mese = $mesi[(int)$mese];

 :bye:

GIA' una risposta!!??!! :o

Grazie provo il prima possibile

risposto 8 anni fa
frankphp
X 0 X

 O0 O0 Funziona!

E non ho nemmeno il problema che il mese viene stampato anche negli spazi relativi ad utenti che non hanno inserito dati. Grande

Come mai l'int?

01 relativo al mese non era riconosciuto come numero intero?

Grazie

risposto 8 anni fa
frankphp
X 0 X

Il problema era causato dallo zero davanti al numero 1 ("01"). I mesi infatti sono sempre espressi con 2 caratteri.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Il problema era causato dallo zero davanti al numero 1 ("01"). I mesi infatti sono sempre espressi con 2 caratteri.

 :bye:

si capito.

L'operazione che hai fatto si chiama cast..o una cosa genere se non sbaglio.

Giusto?

risposto 8 anni fa
frankphp
X 0 X

Si, si chiama cast, e in PHP serve a convertire i tipi di dati.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Si, si chiama cast, e in PHP serve a convertire i tipi di dati.

 :bye:

Ok grazie gianni. Possiamo chiudere il topic (che sembra interessare a molti utenti. A quanto pare la gestione delle date in php sembra essere sempre un argomento hot) qui.

 O0

risposto 8 anni fa
frankphp
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda