data in italiano

Buongiorno a tutto il forum.

Ciao Gianni,

ho una peprlessità su come si ottengono le date in italiano.

Ho notato sia sul sito phpnews che in diversi altri, suggeriscono diversi metodi (per me + o - incomprensibili a livello di difficoltà), per ottenere le date in italiano, adducendo motivazioni di compatibilità a secondo del sistema operativo su cui deve girare lo script, altri che inserisco funzioni particolari, insomma un vero caos.

Prima che leggessi questi articoli, mi ero creato uno scriptino che mi stampasse a video Salve! oggi è 9 novembre 2005 (vds codice sotto riportato) è devo dire che funziona sia in locale con windows xp,  apache2 + php5, che online su server linux, dunque non capisco che problemi possa avere questo script. Sono molto confuso :dunno:

<?php
$mese=array(1=>'gennaio','febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre','novembre', 'dicembre');
$giorno=array(1=>'Lunedi, 'Martedi, 'Mercoledi, 'Giovedi, 'Venerdi, 'Sabato', 'Domenica');
$x=date(n);
$y=date(w);
$data=date(j);
$anno=date(Y);
echo "Salve! oggi e'<B>$giorno[$y] $data $mese[$x] $anno</b>";
?>

Ciao

inviato 11 anni fa
TrxWeb
X 0 X

Il tuo script non ha problemi di compatibilità perché produce l'indicazione della data autonomamente, senza servirsi di funzioni php che generino il nome del mese o del giorno della settimana.

I problemi infatti insorgono quando si chiede a php di scrivere la data usando i nomi al posto dei numeri. In questi casi infatti c'è il problema di specificare la lingua da utilizzare. Poiché in realtà il php a sua volta si basa su delle funzioni del sistema operativo per ottenere questi nomi, quando specifichiamo la lingua da usare il php rigira questa informazione al sistma operativo. Questo poi produce la data e la passa a php ed infine il php ci mostra la data.

Siccome però diversi sistemi operativi usano convenzioni diverse per specificare una lingua, succede che tale indicazione a volte viene recipita e a volte no.

Evitando di usare queste funzioni si taglia la testa al toro. Il tuo script infatti prima ricava la data in maniera numerica e poi trasforma questi numeri in nomi di mesi e giorni della settimana. Evidentemente il sistema operativo non viene direttamente interessato e pertanto non ci sono problemi di compatibilità.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Grazie per la risposta.

Concludendo, il risultato è identico con i due metodi? se si perchè mai ci si deve complicare la vita ad utilizzare funzioni che magari per una disattenzione genera errori su piataforme diverse su cui gira?

 :bye:

risposto 11 anni fa
TrxWeb
X 0 X

Il risultato è ovviamente lo stesso. Per chi parla inglese il problema non si pone, pertanto conviene usare la strada più veloce, ovvero quella che ai non inglesi può creare problemi.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Grazie  O0

risposto 11 anni fa
TrxWeb
X 0 X

Ma se voglio usare la funzione di php?

va bene:

<?php setlocale(LC_ALL, 'it_IT@euro', 'it_IT', 'it', 'ita'); ?>

manca qualcosa?

non sono riuscito a trovare la lista dei sistemi operativi che usano queste impostazioni.

La mia è più una curiosità che un bisogno pratico perchè mi basta sapere il server sul quale gira il mio script quale parametro accetta ( e per lo più scelgo server linux ).

risposto 11 anni fa
arjuna
X 0 X

Guarda gli esempi riportati qui:

http://www.phpnews.it/content/view/139/86/

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda