Ma hai dato l'echo delle funzioni?
E' una vecchia funzione che feci. Supporta qualsiasi lingua che il sistema operativo riconosce. La creai per ritornarmi un array con data numerica mese giorno lunghi e anno.codice:function _localization($date) { // setta la mappa locale del sistema operativo setlocale (LC_TIME, 'ita'); setlocale (LC_TIME, 'it_IT'); // divido la stringa e creo un timestamp list($y,$m,$d) = explode("-",$date); $time = mktime(0,0,0,$m,$d,$y); // crea la data numerica in italiano $format = "d/m/Y" $newDate = date($format, $time); // estre i nomi del giorno e del mese con la prima lettere maiuscola $day = ucfirst(strftime('%A', $time)); $month = ucfirst(strftime('%B', $time)); return array($newDate, $month, $y, $day); }
Ciao
Yuri
Con quel codice come faccio a dirgli di prendere la data dal $row[Data] ?
Ho riadattato il codice per la tua esigenza:
<?php
//Data di esempio
$anno = "2005";
$giorno = "5";
$mese = "7";
function giorno($anno,$giorno,$mese)
{
$giorn = date("l",mktime(0,0,0,date("$mese"),date("$giorno" ),date("$anno")));
switch($giorn)
{
case 'Monday':
$giorn = 'Lunedì';
break;
case 'Tuesday':
$giorn = 'Martedì';
break;
case 'Wednesday':
$giorn = 'Mercoledì';
break;
case 'Thursday':
$giorn = 'Giovedì';
break;
case 'Friday':
$giorn = 'Venerdì';
break;
case 'Saturday':
$giorn = 'Sabato';
break;
case 'Sunday':
$giorn = 'Domenica';
break;
}
return $giorn;
}
function mese($anno,$giorno,$mese)
{
$mes = date("n",mktime(0,0,0,date("$mese"),date("$giorno" ),date("$anno")));
switch($mese)
{
case 1:
$mes = 'Gennaio';
break;
case 2:
$mes = 'Febbraio';
break;
case 3:
$mes = 'Marzo';
break;
case 4:
$mes = 'Aprile';
break;
case 5:
$mes = 'Maggio';
break;
case 6:
$mes = 'Giugno';
break;
case 7:
$mes = 'Luglio';
break;
case 8:
$mes = 'Agosto';
break;
case 9:
$mes = 'Settembre';
break;
case 10:
$mes = 'Ottobre';
break;
case 11:
$mes = 'Novembre';
break;
case 12:
$mes = 'Dicembre';
break;
}
return $mes;
}
echo giorno($anno,$giorno,$mese).' '.$giorno.' '.mese($anno,$giorno,$mese).' '.$anno;
?>
di solito da mySql la data esce 2005-07-12
quindi gli passi direttamente row[Data].
Nel caso il formato che devi passargli è differente allora devi cambiare _localization() qui:
list($y,$m,$d) = explode("-",$date);
mettendo il giusto ordine di uscita delle stringhe... con l'esempio del tuo formato di data (12-07-2005) diventa
list($d,$m,$y) = explode("-",$date);
Non ci avevo pensato ma potresti anche usare un'altra soluzione.
Fai la tua query al db e usi la funzione di mysql dayofweek (1 = domenica, 7 = sabato) e usi lo switch in base ai numeri da 1 a 7.
Stesso discorso per il mese. usi month(della tua data) che ti restituisce un numero compreso tra 1 e 12.
Anche qui in base al valore restituito gli assegni il nome lungo italiano.
io invece uso questa mia funzione, cui dò in pasto un timestamp SQL:
function DateAndTime ($timestamp)
{
// timestamp: YYYY-MM-dd
list($year,$month,$day) = explode("-", $timestamp);
setlocale(LC_TIME,NULL);
return strftime("%A %d %B %Y",mktime(0,0,0,$month,$day,$year));
}
Adesso non ho sottomano le funzioni di data e ora di php (è un casino ricordarsele a memoria).
Ma la tua funzione gli visualizza anche il giorno in formato italiano come serve a lui?
solo se prima imposti setlocale()
ciao
Yuri