Newsgroup: it.comp.www.php
Titolo: Data in formato italiano

Devo portare in un campo della form una data proveniente dal database MySql.
Dopo la lettura ottengo la data sotto forma di stringa es: 2002-10-14.
Intendo mettere nel campo della form 14-10-2002 (formato italiano).
Da principiante in PHP ho trovato l'improprio;
$campo = split("/",campo ricevuto da Mysql)
per poi trattare separatamente Anno Mese Giorno.
Vi è qualche funzione specifica sulle date per ottenere questo risultato?
Ringrazio anticipatamente per l'attenzione.
Lucio

 Vi č qualche funzione specifica sulle date per ottenere questo risultato?
Ne approfitto per fare un po' di esercizio...
Allora..
<?PHP
$campo = "2002-10-14";
/*o cosě...*/
list($anno,$mese,$giorno) = sscanf($campo,"%4s-%2s-%2s"); /* ho messo s al
posto di d per evitare problemi con giorni e mesi inferiori a 10*/
echo "$giorno-$mese-$anno\n";
/*o cosě...*/
echo
preg_replace("/^([\d]{4})-([\d]{2})-([\d]{2})$/","\\3-\\2-\\1",trim($campo))
; /* metto trim per sicurezza.. ma non dovrebbe servire se $campo č nel
formato corretto*/
?>

 >
[cut varie soluzioni]
Per farla breve aggiungi anche questo:
  echo date("d-m-Y", strtotime("2002-10-14"));

 ha scritto nel messaggio
news:%HAq9.1526$o7.5...@news2.tin.it...

se non ho capito male, ti copincollo quello che stavo facendo proprio
stasera
semplicemente nel form:
<SCRIPT LANGUAGE="JavaScript">
<!--
/* inizializzo nuova data */
Stamp = new Date();
/* gestione millenium bug */
var plus = Stamp.getYear();
if (plus < 1000) plus +=1900;
/* array nomi italiani dei mesi */
var mesi = new
Array('Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agos
to','Settembre','Ottobre','Novembre','Dicembre');
var mesec = Stamp.getMonth();
function showtime() {
        var now = new Date();
        var hours = now.getHours();
        var minutes = now.getMinutes();
        //var seconds = now.getSeconds()
        //var timeValue = "" + ((hours >12) ? hours -12 :hours)
  var timeValue = "" + hours
        timeValue += ((minutes < 10) ? ":0" : ":") + minutes
        //timeValue += ((seconds < 10) ? ":0" : ":") + seconds
        //timeValue += (hours >= 12) ? " p.m." : " a.m."
        document.appuntamento.orario.value = timeValue;
}
/* stampa giorno */
//document.write('' + Stamp.getDate()+"&nbsp;"+(mesi[mesec])
+"&nbsp;"+plus);
function giorno()
{
//if (x=a) return plus;
document.appuntamento.giorno.value=Stamp.getDate();
document.appuntamento.mese.options[0].text=mesi[mesec];
document.appuntamento.mese.options[0].value=mesec+1;
document.appuntamento.anno.value=plus;
//document.appuntamento.orario.value=orario;
}
-->
</SCRIPT>
</head>
<body onLoad="giorno();showtime();">
<form action="insapp.php" method="post" name="appuntamento">
[snip.....]
<tr><td>data</td><td>
        <input name="giorno" type="text" size="3" maxlength="2">
        <select name="mese">
          <option value="">Mese</option>
          <option value="01">Gennaio</option>
          <option value="02">Febbraio</option>
          <option value="03">Marzo</option>
          <option value="04">Aprile</option>
          <option value="05">Maggio</option>
          <option value="06">Giugno</option>
          <option value="07">Luglio</option>
          <option value="08">Agosto</option>
          <option value="09">Settembre</option>
          <option value="10">Ottobre</option>
          <option value="11">Novembre</option>
          <option value="12">Dicembre</option>
        </select>
        <input name="anno" type="text" maxlength="4" size="5"
onmouseover="giorno();" onmouseout="giorno();">
      </td></tr>
<tr><td>orario</td><td><input name="orario" type="text"></td></tr>
etc..
in insapp.php
$data =$anno."-".$mese."-".$giorno;

Devo portare in un campo della form una data proveniente dal database MySql.
Dopo la lettura ottengo la data sotto forma di stringa es: 2002-10-14.
Intendo mettere nel campo della form 14-10-2002 (formato italiano).
Da principiante con PHP ho trovato l'improprio;


Grazie a:
Ic^Ĺ^rO  Jurgen e Brian
per i validi suggerimenti
ciao, Lucio

 ha scritto nel messaggio
news:%HAq9.1526$o7.5...@news2.tin.it...

Potresti anche selezionare la data direttamente cosi dalla tabella di mysql:
$sql =  "SELECT *, date_format(tuocampodata, '%d-%m-%Y') AS data_ok
FROM.....ecc ecc. "
data_ok, contiene la data già ne formato GG-MM-AAAA.
--
Cordialmente.
Carmelo Carchedi
Il mio e-mail non ha numeri,
ricordati di toglierli per rispondere privatamente.
Juniorbit Sas
www.juniorbit.it