utilizzo di DATE

Sto utlizzando la funzione date all'interno di un calendario,in questo modo

date("F",$first_day)

F indica il mese per esteso però lo scrive in Inglese esiste una funzione di confersione per metterlo in italiano o devo fare io i controlli per fargli scrivere il mese in Italiano??

Grazie

 :bye:

inviato 9 anni fa
stellina
X 0 X

Prova con la funzione setlocale:

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

setlocale(LC_TIME, "it_IT");
echo date("F",$first_day);

ciao

Lore

risposto 9 anni fa
Lore
Lore
1
X 0 X

l'idea è quella giusta ma a me non funziona.

Ho provato anche con alcuni esempi di php.net, tutto invano.

 :tichedoff:

risposto 9 anni fa
stellina
X 0 X

Mi pare dipenda dal sistema operativo su cui ti trovi, cmq prova:

setlocale(LC_TIME, "IT");

echo date("F",$first_day);

se non dovesse funzionare nemmeno così, prova a sostituire "IT" con una delle stringhe riportate in questi link:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp

se no, sinceramente non saprei...

ciao

Lore

risposto 9 anni fa
Lore
Lore
1
X 0 X

le ho ptovate tutte ma senza risultato. Ho come S.O. unix non so se cambia qualcosa.

Mi sa chè farò a mano un controllo sulla data. :-\

risposto 9 anni fa
stellina
X 0 X

La cosa cambia, avevo mandato un pm a Gianni su come trovare la stringa corretta per integrare il tip&tricks ma non l'ha ancora messo.

Cmq si un suse linux 9.3 devi usare:

setlocale(LC_ALL, 'it_IT');
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

l'echo è ovviamente per verificare che vada bene, lc_all è per impostare tutti i parametri (valuta,data, ecc)

Questo visualizza:

venerdì 22 dicembre 1978

risposto 9 anni fa
LonelyWolf
X 0 X

Già che ci sono, Gianni se passi di qua e leggi non è che mi rimanderesti quel pm? non ce l'ho più e mi sono dimenticato come ho fatto! ;)

Edit:

Che stupido, non avevo letto per bene il tuo post!

Per formattare la data come impostato da setlocale si usa strftime() come nel mio esempio e non date(); setlocale l'avevi impostato già corretto.

risposto 9 anni fa
LonelyWolf
modificato 9 anni fa
X 0 X

La cosa cambia, avevo mandato un pm a Gianni su come trovare la stringa corretta per integrare il tip&tricks ma non l'ha ancora messo.

Cmq si un suse linux 9.3 devi usare:

setlocale(LC_ALL, 'it_IT');
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

l'echo è ovviamente per verificare che vada bene, lc_all è per impostare tutti i parametri (valuta,data, ecc)

Questo visualizza:

venerdì 22 dicembre 1978

Ho provato questa solzuione ma la data me la scrive sempre in inglese.  :tichedoff:

C'è qualche impstazione sul server da modificare?

 :(

risposto 9 anni fa
stellina
X 0 X

Allora farei un'ultima prova:

echo setlocale(LC_ALL, 0);

Questo dovrebbe visualizzare le impostazioni correnti, vedi che tipo di stringa ti restituisce.

Edit:

Dovresti anche controllare, se ti è possibile, quali locales ci sono installati, il comando da shell dovrebbe essere tipo: locale -a.

Ri-edit:

con quello trovi anche la stringa da utilizzare per setlocale!

risposto 9 anni fa
LonelyWolf
modificato 9 anni fa
X 0 X

Allora farei un'ultima prova:

echo setlocale(LC_ALL, 0);

Questo dovrebbe visualizzare le impostazioni correnti, vedi che tipo di stringa ti restituisce.

Restituisce "C" .

Edit:

Dovresti anche controllare, se ti è possibile, quali locales ci sono installati, il comando da shell dovrebbe essere tipo: locale -a.

Lanciando quel comando ho ottenuto questa risposta:

C

it_IT@euro

it_IT.iso885915@euro

POSIX

Ho provato a fare cosi:

echo setlocale(LC_ALL, 'it_IT@euro');

echo strftime("%A %e %B %Y", mktime(0, 0, 0, 10, 05, 1978));

e mi scrive

it_IT@eurogiovedì 5 ottobre 1978 

la data è in italiano ma ha quel prefisso davanti it_IT@euro ...

che ne pensi?

 :bye:

risposto 9 anni fa
stellina
modificato 9 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda