Visualizzazione dei risultati da 1 a 6 su 6

Discussione: mese in italiano

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    mese in italiano

    Ho scritto questo codice:
    Codice PHP:
    echo "
    news_data_inserimento letta da db mysql: " 
    $news_data_inserimento;
    //la data provveniente dal database la converto in timestamp
    $ts_data strtotime($news_data_inserimento);
    setlocale(LC_TIME'ita''it_IT');
    $news_mese date("F"$ts_data);
    echo 
    "mese: ".$news_mese 
    A video mi appare
    news_data_inserimento letta da db mysql: 2011-08-30 18:45:49
    mese: August


    Io vorrei
    Agosto

    dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    170
    Non sbagli niente, tutti le funzioni PHP restituiscono risultati in inglese. Per cambiarlo dovresti fare una tua funzione in cui ti traduce la parola.

    Puoi usare una funzione tipo questa

    Codice PHP:
    function months($var) {

        
    $search = array(
            
    'August',
            
    'September',
            );
        
    $replace = array(
            
    'Agosto',
            
    'Settembre',
            );
        
    $var str_replace ($search$replace$var);
        return 
    $var;
        

    e scrivere
    Codice PHP:
    echo "mese: ".months($news_mese) ; 

  3. #3
    Per estrarre i nomi ti consiglio di farti funzioni ad-hoc, come ad esempio quella dei giorni della settimana.
    C'è un codice della funzione 'date', la 'w', che ritorna il numero del giorno della settimana:
    Codice PHP:
    $giorno=date('w',time());
    //verrà restituito 0 per la domenica fino al 6 per sabato

    switch ($giorno) {
        case 
    0:
            
    $nome_giorno="Domenica";
            break;
        case 
    1:
            
    $nome_giorno="Lunedì";
            break;
        case 
    2:
            
    $nome_giorno="Martedì";
            break;
        case 
    3:
            
    $nome_giorno="Mercoledì";
            break;
        default:
            
    $nome_giorno="Non so che giorno sia";
    }

    echo 
    $nome_giorno
    Così facendo non hai problemi di sorta per quanto riguarda la lingua visto che viene ritornato un numero. Ti setti la variabile per quello di cui hai bisogno, tipo $nome_giorno, e sei a posto.
    Questo sistema è ottimo per i siti multilingua o anche solo perché è il metodo più sicuro in assoluto .
    Da qui puoi fartela per qualsiasi cosa, come ad esempio il mese (con il codice 'n'), che poi è quello che serve a te:
    Codice PHP:
    $mese=date('n',time());
    //verrà restituito 1 per Gennaio fino a 12 per Dicembre, senza 0 davanti

    switch ($mese) {
        case 
    1:
            
    $nome_mese="Gennaio";
            break;
        case 
    2:
            
    $nome_mese="Febbraio";
            break;
        case 
    3:
            
    $nome_mese="Marzo";
            break;
        case 
    4:
            
    $nome_mese="Aprile";
            break;
        default:
            
    $nome_mese="Non so che mese sia";
    }

    echo 
    $nome_mese
    Non esistono traduzioni integrate in PHP nelle varie lingue, per quello permettono di estrarre i numeri esemplificati qui sopra, per creare la propria lingua personalizzata o, appunto, multilingua.
    Ce l'ho fatta! - ItalianPixel -

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    A me funziona così

    setlocale(LC_TIME,'it_IT.ISO8859-1','ita');

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    39
    Infatti concordo con Luke, non c'è bisogno di farsi array o case switch, o meglio è possibile è una soluzione ma PHP offre il setLocale() che ti permette già di fare ciò, ecco un link di esempio : http://www.phpnews.it/articoli/otten...e-in-italiano/






    setlocale — Set locale information from php.net :
    http://www.php.net/manual/en/function.setlocale.php

  6. #6
    Difatti c'è anche una forma simile alla mia soluzione.
    Poi se volessi avere il giapponese come lingua ci sarebbe in setlocale?
    Personalmente, anche se prolisso, preferisco il mio metodo, così posso gestire le maiuscole, le lingue che voglio ed è sicuro al 100%.
    Comunque proverò anche questo metodo, che mi sembra semplice e rapido, anche se non mi fido mai troppo dei 'locale'.
    Ce l'ho fatta! - ItalianPixel -

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.