Login

Home Tips & Tricks Ottenere date in italiano

Ottenere date in italiano

di Gianni Tomasicchio - Domenica 13 Marzo 2005 16:42

Spesso si ha la necessità di presentare le date in un formato più gradevole del solito gg/mm/hhhh. Se la funzione date se la cava egregiamente per questo formato un po' spartano, non si può dire altrettanto quando si cerca di ottenere l'indicazione del mese o del giorno della settimana in lettere (ad es. domenica 13 marzo 2005) poiché il risultato sarebbe in inglese.

PHP mette a disposizione la funzione strftime che in coppia con la funzione setlocale permette di ottenere delle date che rispettino la lingua impostata. Purtroppo però l'indicazione della lingua da passare a setlocale non è valida per qualsiasi sistema operativo ma dipende da questo.

Il seguente esempio è valido per un server Windows:

<?php
setlocale(LC_TIME, 'ita');

echo strftime("%A %d %B %Y");
?>

Invece per un server Linux (sperimentato su Fedora Core I):

<?php
setlocale(LC_TIME, 'it_IT');

echo strftime("%A %d %B %Y");
?>

I casi possibili ovviamente non si esauriscono solo a questi due appena visti, sono molte infatti le segnalazioni di insuccessi delle precedenti stringhe della lingua.

Inoltre, anche se si avesse l'intera casistica a disposizione, rimarrebbe il problema di individuare correttamente il sistema operativo del server se vogliamo rendere i nostri script portabili.

Una soluzione un po' artigianale potrebbe essere la seguente, che si basa sulla semplice traduzione dei giorni della settimana e dei mesi dalla loro indicazione numerica al relativo nome in lettere:

<?php
$mesi = array(1=>'gennaio', 'febbraio', 'marzo', 'aprile',
                'maggio', 'giugno', 'luglio', 'agosto',
                'settembre', 'ottobre', 'novembre','dicembre');

$giorni = array('domenica','lunedì','marted','mercoledì',
                'giovedì','venerdì','sabato');

list($sett,$giorno,$mese,$anno) = explode('-',date('w-d-n-Y'));

echo $giorni[$sett],' ',$giorno,' ',$mesi[$mese],' ',$anno;
?>

Non sarà la soluzione più elegante ma è garantita al 100%!

Commenti  

 
# Ospite 2009-04-28 19:03
mi è tornato molto utile, grazie
Rispondi | Rispondi con citazione | Citazione
 
 
# RE: Ottenere date in italianoSalvatore 2010-06-14 18:52
Grazie 1000!
Ottima soluzione
Rispondi | Rispondi con citazione | Citazione
 
 
# RE: Ottenere date in italianoNuovobuio 2010-07-11 01:20
Ti ringrazio.
Rispondi | Rispondi con citazione | Citazione
 

Aggiungi commento


Codice di sicurezza
Aggiorna