Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Data (credo facilissimo per voi)

    Salve, vi posto la situazione:

    Codice PHP:
    '.$d['date'].' 
    In questo modo estraggo dal database la data in cui l'oggetto è stato inserito. Il problema è che lo visualizzo ad esempio così:
    2012-04-22, ma io vorrei visualizzarlo così: 22 Apr 2012.
    Nel database ho messo come formato Date, ma ho provato anche timestamp, e altri, ma credo che allo scopo vada bene Date da quello che ho capito. Come faccio a far capire al database di memorizzare i dati direttamente come li voglio io, oppure alla pagina di stampare i dati secondo il formato scelto?
    Grazie


  2. #2
    beh, hai 3 modi per farlo:
    - imposti a mysql di usare i locales (lingua) in italiano e poi formatti la data per estrarla come vuoi tu, però il tuo hoster potrebbe non avere installati i locales in italiano
    - imposti la lingua italiana per le date in php ed estrai la data in formato ansi, la parsi e poi la riformatti per come serve a te con le funzioni di php (http://www.php.net/strtotime e http://www.php.net/date ), occhio che si passa dal timestamp quindi ci sono dei limiti sui periodi gestibili con questo sistema
    - ti crei degli array che mappano il numero del mese al nome del mese, acquisisci la data da mysql, poi fai un explode ( www.php.net/explode ... ti restituisce un array contenente gli elementi che compongono la data se utilizzi come separatore il carattere - ) della data stessa e i singoli componenti li ricomponi come ti serve facendo passare il numero del mese da dentro l'array
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Ho appena controllato e ho visto che non posso usare la lingua italiana per le date, visto che il server non lo supporta lascio stare questo aspetto.
    Ho dato un'occhiata a quello chje hai postato e da quell oche ho capito dovrebbe uscirre una cosa simile:

    '.date('d M Y', $d['data']).'

    Allora: d= giorni per numeri; M=mesi per nome; Y=rappresentazione numerica dell'anno a 4 caratteri.
    Da quello che ho capito devo segnare prima il tipo di formattazzione da dare e poi la data.
    Il problema è che tutte le date che metto alla fine vengono stampate come 01 Jan 1970. Penso che il server veda 'd M Y' come la data da stampare, e dà di default quella data. Cosa sbaglio?
    Per quanto riguarda 'Date' e 'TImestamp', da quello che ho capito 'Date' segna solo la data e 'TimeStamp' la data e l'ora. La differenza è tutta qui, giusto?
    Fatemi sapere!


  4. #4
    Puoi usare DATETIME se ti serve data e ora, personalmente lo preferisco al campo timestamp

    Detto questo, riguardo a php, ti ho detto che devi impostare la lingua italiana per le date
    codice:
    if(ini_get('safe_mode') == false)
    {
        if (substr(PHP_OS, 0, 3) == 'WIN')
        {
            // Imposta la codifica italiana per windows
            putenv('LC_ALL=italian');
            setlocale(LC_ALL, 'italian');
        }
        else
        {
            // Imposta la codifica italiana per linux
            putenv('LC_ALL=it_IT');
            setlocale(LC_ALL, 'it_IT');
        }
    }
    
    // Imposta il timezone
    date_default_timezone_set('Europe/Rome');
    Questo è il codice che utilizzo, con accesso anche la forzatura sul timezone (che se non ti serve togli)

    E' possibile che non funzioni se non sono presenti i locales italiani (possibile ma improbabile).

    In questo caso l'ultima opzione è usare la terza modalità.

    PS: è strano che il tuo provider non supporti la lingua italia su mysql, di default vengono installate tutte. Prova a lanciare questa query subito dopo che selezioni il database
    SET @@session.lc_time_names = 'it_IT'

    e guarda se le date, formattate usando DATE_FORMAT ( http://dev.mysql.com/doc/refman/5.5/...on_date-format ) ti escono con i nomi dei mesi in italiano
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    No non funziona, ho fatto però la prova con una lingua a caso e ho messo il tedesco e funziona...
    Quindi presumo che non ci sia l'italiano. Vabbè non fà nulla userò l'inglese.
    Comunque non riesco a stampare la data che ho inserito, stampa sempre la stessa data, che andrebbe bene se fossimo nel primo gennaio 1970....
    La data che ho inserito viene stampata solo se la scrivo così:
    Codice PHP:
    '.$d['data'].' 
    , però così mi stama la data in questo modo: 2012-04-22, come faccio a fargli stampare 22 Apr 2012? In poche parole devo ordinare alla data estratta di disporsi così: 22 Apr 2012. Ma come si fà?

  6. #6
    Ti ho dato delle indicazioni, ma se vuoi informazioni più specificate su come si fa in PHP allora questa è la sezione errata

    Se vuoi posso spostarti il thread nella sezione appropriata.
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    L'avevo postato qui perchè pernsavo fosse inerente all'argomento, ma se pernsi che sia meglio in php sposta pure.

  8. #8
    Va bene, non ti preoccupare dai lo riposto. Grazie per l'aiuto.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.