Usi date() o strftime() ma queste continuano a visualizzare il nome dei mesi e dei giorni in inglese mentre tu le vuoi vedere in italiano? Hai letto che devi usare setlocale(LC_ALL, “it_IT.utf8″); ma anche facendolo non cambia niente?

Ecco cosa devi fare:

  • devi usare solo la strftime() e non la date(), visto che quest’ultima non è sensibile al locale del sistema
  • devi verificare che il tuo sistema abbia il supporto per il locale italiano (altrimenti il nome dei mesi da dove se lo prende? Il PHP non ha mica tutti i mesi in tutte le lingue “dentro sé stesso”). Verificalo con il comando locale -a. Ti verrà visualizzata la lista di tutti i locali supportati sul tuo sistema
  • se il locale che ti serve non è presente nella lista, lo devi installare. Il comando è locale-gen e il parametro è il locale che ti interessa (es: locale-gen it, installerà tutti i locale italiani conosciuti, compreso quello standard e quello svizzero)
  • prendi la stringa ESATTA che identifica il locale che ti interessa e la usi come argomento della funzione PHP setlocale() prima di usare la strftime. Esempio: setlocale(LC_TIME, “it_IT.utf8″)