Visualizzazione risultati 1 fino 16 di 16

Discussione: date in italiano

  1. #1
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito date in italiano

    esiste un modo di riutilizzare la funzione di formattazione della data di php ('date') con stringhe in italiano p.es. Lun invece di Mon (senza farlo biella e manovella, s'intende...) ?
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  2. #2
    poske non è connesso Altervistiano Junior
    Data registrazione
    06-02-2005
    Messaggi
    620

    Predefinito

    $settimana = array("Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab");
    echo date('$settimana[w]');


    Devi provare una soluzione del genere...


    Ciao! :D

  3. #3
    Guest

    Predefinito

    guarda-> http://www.phpnews.it/content/view/139/86/ ti consiglio il terzo metodo

  4. #4
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    non c'è un modo per stabilire che stringhe vengono accettate da setlocale?
    (anche se non in automatico, per lo meno sui server che ospitano i siti di av, anche se, ovviamente, meglio in automatico)
    Ultima modifica di express : 28-09-2005 alle ore 16.54.58
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  5. #5
    Ospite Guest

    Predefinito

    ma sono array che vanno a sostituirsi a quelli inglesi automatici , no capisco cosa intendi per setlocale

  6. #6
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    ehm... setlocale dipende dal sistema operativo nel quale viene eseguito... se provi a fare setlocale(LC_ALL, "it_IT") su un sistema windows ci sono ottime probabilità che non funzioni, mentre un "ita" può funzionare su windows ma non su un sistema linux (dipende...) e un "it" potrebbe funzionare su entrambe come su nessuno dei due.

    in ogni caso mi sono "sprecato" : a scrivere questa funzioncina, spero vi piaccia

    Codice PHP:
    <?
    // Convert date to 'lang' date
    // only italian is supported for now
    if (!function_exists("strftime_lang")) {
    function
    strftime_lang($format, $date, $lang="en") {
    if (
    $lang == "it") {
    $a_month_long = array("", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");
    $a_month_short = array("", "gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic");
    $a_weekday_long = array("domenica", "lunedi`", "martedi`", "mercoledi`", "giovedi`", "venerdi`", "sabato");
    $a_weekday_short = array("dom", "lun", "mar", "mer", "gio", "ven", "sab");
    if (
    strpos($format, "%a") !== FALSE) {
    $format = str_replace("%a", $a_weekday_short[(int) strftime("%w", $date)], $format);
    }
    if (
    strpos($format, "%A") !== FALSE) {
    $format = str_replace("%A", $a_weekday_long[(int) strftime("%w", $date)], $format);
    }
    if (
    strpos($format, "%b") !== FALSE) {
    $format = str_replace("%b", $a_month_short[(int) strftime("%m", $date)], $format);
    }
    if (
    strpos($format, "%B") !== FALSE) {
    $format = str_replace("%B", $a_month_long[(int) strftime("%m", $date)], $format);
    }
    }
    $format = strftime($format, $date);
    return
    $format;
    }
    }
    ?>
    se poi le stringhe sono per l'inserimento diretto in html magari sostituirei gli accenti con le html entities appropriate
    Ultima modifica di express : 28-09-2005 alle ore 18.13.31
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  7. #7
    Guest

  8. #8
    Ospite Guest

    Predefinito

    mi sa che non ti conviene ricavare la lingua così, perché tanti sono all'estero oppure hanno il browser ingelse, io uso questo...ci aggiungo anche qualche if sull'ora tipo buongiorno buonanotte..ma ora non lo trovo..

    Stampa:
    Oggi è Mercoledì 28 Settembre

    Codice PHP:
    <?php
    $giorno_corrente
    = date("j");
    $mese_corrente = date("n");
    $giorno_sett = date("w");
    $mesi = array(1=>"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre");
    $giorni = array("Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato");
    echo
    " Oggi è ".$giorni[$giorno_sett]." ".$giorno_corrente." ".$mesi[$mese_corrente];
    ?>

  9. #9
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    beh, quella è una semplice funzione, la chiami utilizzando come ultimo parametro "it" e va alla grande, indipendentemente dal browser...

    è implementata solo l'opzione in italiano e quella in "inglese" (in realtà quella che utilizza il setlocale corrente).

    cmq senza nulla togliere alle soluzioni proposte io continuo a preferire la mia

    @nix82 io fossi in te riguarderei un attimo il codice del tuo script
    Codice PHP:
    $numero_giorno = date("d");
    //nel caso di giorni che siano inferiori al 10 leviamo lo zero davanti
    if($numero_giorno{0} == 0 || $numero_giorno{0} == '0') {
    $numero_giorno = $numero_giorno{1};
    }
    è decisamente poco elegante... meglio:
    Codice PHP:
    $numero_giorno = date("j");
    eppoi sui nomi dei mesi, a scanso di equivoci, se lo devi mettere direttamente su html è meglio utilizzare html entities invece dei caratteri accentati...
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  10. #10
    Guest

    Predefinito

    Ok dopo guardo e casomai correggo ;)

  11. #11
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da express
    beh, quella è una semplice funzione, la chiami utilizzando come ultimo parametro "it" e va alla grande, indipendentemente dal browser...
    sarà perché in questo momento ho mia figlia all'estero che usa un pc inglese che preferisco questo codice...cmq non sono cose importantissime secondo me..uno vale l'altro...il mio funziona cmq, tra l'altro io programmo in locale con window e così il tuo non funziona su window anche se poi sul server di av funge

  12. #12
    express non è connesso AlterVistiano
    Data registrazione
    08-08-2003
    Residenza
    Cagliari/Pisa
    Messaggi
    799

    Predefinito

    veramente funziona anche in locale su windows...
    per quel che ne so, funziona dappertutto...

    il punto è che sta a te richiedere la conversione "it" o quel-che-ti-pare-a-te (basta che la implementi).

    praticamente, invece di utilizzare strftime() utilizzi la funzione che ho scritto io: se non gli passi parametri aggiuntivi, il comportamento è lo stesso; se invece come terzo parametro gli passi "it" allora ti fa la conversione "it" (l'unica implementata).
    da dove poi il programmatore si vada a pescare "it", non è affare della funzione ed qui che al limite uno può dover aggiustare secondo il proprio sito... se lo ha multilingue, gli passerà una variabile, se lo ha solo in italiano basta passare la stringa costante "it".

    piccola osservazione: date() e strftime() sono parenti molto stretti. date è figlia del perl, strftime figlia del C. lo script che ho scritto si può anche riscrivere con date (che però ha subito qualche modifica da php 4 a php 5, mentre strftime non ha ragione di cambiare ed è per questo che io ho scelto quest'ultimo)
    http://express.altervista.org
    Dato un lavoro, si possono scegliere due sole delle seguenti caratteristiche: veloce, economico, di qualità.
    Così capita che se un lavoro è veloce ed economico non sarà di qualità; se è veloce e di qualità non sarà economico; se è economico e di qualità non sarà veloce.

  13. #13
    linofas non è connesso Neofita
    Data registrazione
    12-03-2005
    Messaggi
    1

    Predefinito prova con questa stringa

    $settimana = array("Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab");
    echo date('$settimana[w]');
    dovrebbe funzionare ............ciao

  14. #14
    Ospite Guest

    Predefinito

    allora...questi 3 qui:

    setlocale(LC_TIME, 'it_IT');

    echo strftime("%A %d %B %Y");

    echo" <hr>";

    setlocale(LC_TIME, 'it');

    echo strftime("%A %d %B %Y");

    echo" <hr>";

    setlocale(LC_TIME, 'ita');

    echo strftime("%A %d %B %Y");

    su linux mi da italiano in tutti e 3, su window mi da italiano solo gli ultimi 2.

  15. #15
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    io ti consiglio
    eregi_replace

    in questo modo:

    $data = date("formattazione");
    $data = eregi_replace("Mon","Lun",$data);
    //e cosi via
    //poi
    print($data);

    Ciaoo!!

  16. #16
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da Leo91
    io ti consiglio
    eregi_replace

    in questo modo:

    $data = date("formattazione");
    $data = eregi_replace("Mon","Lun",$data);
    //e cosi via
    //poi
    print($data);

    Ciaoo!!
    sì senza array ? così invece che 2 righe ne deve scrivere 14

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •