Visualizzazione risultati 1 fino 7 di 7

Discussione: aggiustare il formato della data

  1. #1
    palace non è connesso Neofita
    Data registrazione
    22-01-2015
    Messaggi
    11

    Post aggiustare il formato della data

    Salve a tutti,
    ho in una variabile una data che prelevo da form. (Quindi non la data odierna.)
    Ad esempio potrei avere questa data 1-2-15.
    Quello che devo realizzare è visualizzare domenica 01/02/2015
    E' possibile farlo ? Come ?
    Grazie per ogni aiuto.

  2. #2
    Guest

    Predefinito

    Per mettere le barre al posto delle linee basta fare così:

    Codice PHP:
    $data = 1-2-15;
    $data2 = str_replace("-", "/", $data2);
    Per domenica penso dovresti salvarlo già nel database mentre per mettere il 20 davanti al 15 non saprei

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Sicuro che il formato inserito dall'utente sia sempre del tipo "1-12-15"?

    Io trasformerei comunque in Unix Timestamp ad esempio con la mktime(). Quindi poi tramite la date() puoi far tutto quello che vuoi: per "Domenica", è sufficiente convertire il parametro "w" nella corrispondente stringa.

    Ciao!
    Ultima modifica di alemoppo : 02-02-2015 alle ore 22.31.17

  4. #4
    palace non è connesso Neofita
    Data registrazione
    22-01-2015
    Messaggi
    11

    Red face

    Grazie a tutti delle risposte.
    In effetti non so in quale formato verrà scritto il dato, cioè la data. Può esere 1-2-15, ma anche 1/2/15 o ancora 1.2.15 ecc.
    Ho provato così:
    Codice PHP:
    echo date('$miogiorno', mktime(0, 0, 2015));
    ma ottengo = $0233201512332015Tue, 03 Feb 2015 00:33:35 +010022015
    Forse chiedo troppo, alemoppo potresti farmi un esempio ?
    Grazie ancora

  5. #5
    palace non è connesso Neofita
    Data registrazione
    22-01-2015
    Messaggi
    11

    Predefinito

    In parte ho risolto il problema.
    Mi è rimasto un piccolo inghippo trovare il giorno giusto.
    Ho usato questo script:
    Codice PHP:
    $gShort = array('Domenica','Luned&igrave','Marted&igrave','Mercoled&igrave','Gioved&igrave','Venerd&igrave','Sabato');
    $ts = mktime(0,0,0,$mese,($di)-3,$anno);
    $gd = getdate($ts);
    echo
    $gShort[$gd['wday']];
    Funziona, però nel calcolo del giorno ho dovuto mettere alla variabile $di (che corrisponde al numero del giorno esploso) meno 3 per far coincidere la descrizione nell'array al giorno giusto. Pensavo di essere a posto, ma provando a interrogare nei mesi futuri, ad iniziare ad aprile i giorni visualizzati non corrispondono più.
    Cioè praticamente fino a fine marzo calcola correttamente il giorno e lo visualizza correttamente, dopo sembra improvvisamente sfasarsi qualcosa. In particolare il 1 Aprile (sembra uno scherzo) mi visualizza Domenica invece di Mercoledì e continua di seguito. Praticamente dovrei togliere il meno 3, ma in questo mese poi visualizza il giorno sbagliato.
    Incredibile. Qualcuno potrebbe aiutarmi a correggere lo script ?
    Grazie di cuore

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Citazione Originalmente inviato da palace Visualizza messaggio
    ho dovuto mettere alla variabile $di (che corrisponde al numero del giorno esploso) meno 3 per far coincidere la descrizione nell'array al giorno giusto
    Non ho capito: se è il 3 febbraio, perché dovresti scrivere che è lo 0 febbraio? .

    Comunque puoi usare anche la getdate() invece della date(), ma la date() l'avevi usata in modo errato: nel primo parametro ci va una stringa che rappresenta gli elementi che vuoi stampare, del tipo:

    Codice PHP:
    echo date('d-m-Y', mktime(0,0,0,2,3,2015));
    Ciao!

  7. #7
    palace non è connesso Neofita
    Data registrazione
    22-01-2015
    Messaggi
    11

    Predefinito

    Grazie alemoppo dell'interessamento.
    Per rispondere alla tua domanda. Non volevo cambiare la data (il numero del giorno), ma avevo notato che nello script che avevo usato, risolvevo il problema. Invece purtroppo la soluzione è stata solo parziale.
    Ho usato anche il getdate() e ho provato anche a modificare la stringa come mi hai suggerito, ma non è servito.
    C'è qualcosa che non quadra.

    Se inserisco nel form la data del 31-1-15 estrapolo i dati e dopo lo script del post precedente, stampo le variabili:
    Codice PHP:
    echo $miogiorno."<br />"; // valore data recuperata dal form
    echo $di.$mese.$anno."<br />"; // dopo l'esplosione della data e aver separato giorno, mese e anno
    echo $miogiorno."-".$gShort[$gd['wday']]; // di nuovo la variabile data reuperata dal form e il giorno in questione
    Ottengo questi valori:
    31/01/2015
    31/01/2015
    31/1/15-Venerdì
    Certamente il 31 gennaio era Sabato non Venerdì. La risposta è sbagliata nonostante la data numerica sia giusta.
    Inoltre la stessa variabile $miogiorno, nel primo caso vìsualizza la data completa (colore blu), mentre nell'ultima riga la stessa variabile viene visualizzata diversamente (colore rosso).

    Se inserisco nel form la data 1-2-15, ottengo invece:
    01/02/2015
    01/02/2015
    1/2/15-Mercoledì
    Ma il primo Febbraio era Domenica. Anche qui il giorno non è quello giusto.

    Io non sono molto afferrato in php e avevo scoperto questa tecnica sperando di riuscire a usarla, ma se c'è un altro sistema ben venga. Grazie ancora dell'aiuto.

Regole di scrittura

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