Tu hai gia' l'oggetto date time ... lo veedo dal fatto che usi $data->format

http://www.php.net/manual/en/datetime.format.php


Se guardi tra le funzioni disponibili trovi :
http://www.php.net/manual/en/datetime.settimezone.php

e quindi :
http://www.php.net/manual/en/class.datetimezone.php


MA, c'e' anche di piu' per l'oggetto Date Time e per la domanda in questione :
http://www.php.net/manual/en/book.datetime.php
Inioltre se selezioni una timezone vedrai che :
http://www.php.net/manual/en/timezones.europe.php

Il tutto per arrivare qui :
http://it2.php.net/manual/en/function.setlocale.php

E quindi dovo aver visto un po' in generale come fungono le date arriveri a questa conclusione :
Codice PHP:
echo "<pre>";

setlocale(LC_TIME'it_IT');
echo 
strftime("%A %e %B %Y" )."\n";

setlocale(LC_TIME'en_US');
echo 
strftime("%A %e %B %Y" )."\n";

setlocale(LC_TIME'de_DE');
echo 
strftime("%A %e %B %Y" )."\n";

setlocale(LC_TIME'es_ES');
echo 
strftime("%A %e %B %Y" )."\n";

setlocale(LC_TIME'fr_FR');
echo 
strftime("%A %e %B %Y" )."\n";

echo 
"</pre>"

E come vedi php gia' ti fornisce un ottimo set di dati, prefetti per la gestione dei formati multilingua, ma non solo delle date anche delle valute ed altro. Ti base solamente impostare correttamente il settaggio del "locale" per la lingua impostata dall'utente, oppure presa anche dal suo user-agent o da dove ti pare. In questo modo puoi serparare corretamente la parte di gestione dei dati da quella di visualizzazione

EDIT : mi sono dimenticato di linkarti questa :


http://it2.php.net/manual/en/function.strftime.php