Visualizzazione risultati 1 fino 7 di 7
Like Tree1Likes
  • 1 Post By portier

Discussione: Data a quattro o a due cifre

  1. #1
    portier non è connesso Utente
    Data registrazione
    07-06-2014
    Messaggi
    127

    Red face Data a quattro o a due cifre

    Salve a tutti.
    Ho questo problema: nel campo ricerca di un form faccio inserire una data.
    Se la inseriscono a 4 cifre va tutto bene, ma se scrivono solo le ultime due cifre non esegue più la ricerca.
    Come potrei fare perchè vada sempre bene ?
    Il codice che utilizzo per la data è il seguente:
    Codice PHP:
    $miadata = $_POST['miadata']; // recupero la data dal form in italiano
    $date = str_replace('/', '-', $miadata); // adatto la data per la ricerca nel database
    $data=date('Y-m-d', strtotime($date)); // formato americano della data
    Grazie

  2. #2
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Suppongo sia dato dall'ambiguità del formato a 2 cifre: in Italia l'anno lo mettiamo sempre alla fine, invece in altri Paesi l'ordine cambia: l'anno può essere all'inizio, il mese può venire prima del giorno...
    Per essere sicuro di averlo corretto, ti consiglio di non usare strtotime ma altre funzioni, ad esempio mktime:
    Codice PHP:
    $miadata = $_POST['miadata'];
    list(
    $gg, $mm, $aa) = explode('/', $miadata); // divido la data in pezzi
    $data = date('Y-m-d', mktime(0,0,0,$mm,$gg,$aa));
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  3. #3
    portier non è connesso Utente
    Data registrazione
    07-06-2014
    Messaggi
    127

    Predefinito

    Grazie. Sei un grande. Funziona.
    Adesso però posso inserire solo la data separata da / (cioè così: 17/9/14), ma se qualcuno la scrive diversamente non funziona nuovamente (es. 17-9-14 o ancora 17.9.14).
    Sai come rimediare anche a questo ?
    Grazie mille ancora

  4. #4
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Facile:
    Codice PHP:
    $miadata = $_POST['miadata'];
    $miadata = str_replace('-', '/', $miadata);
    $miadata = str_replace('.', '/', $miadata);
    $miadata = str_replace(' ', '', $miadata); // Ti consiglio di aggiungere anche questo, non si sa mai quanto un utente sia imprevedibile
    list($gg, $mm, $aa) = explode('/', $miadata);
    $data = date('Y-m-d', mktime(0,0,0,$mm,$gg,$aa));
    Ultima modifica di Luffio : 17-09-2014 alle ore 11.36.18
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  5. #5
    portier non è connesso Utente
    Data registrazione
    07-06-2014
    Messaggi
    127

    Predefinito

    Ottimo. Funziona.
    Una domanda.
    Non basterebbe allora mettere solo la sola riga :
    Codice PHP:
    $miadata = str_replace(' ', '/', $miadata);
    Questa cosa considera ?
    Grazie ancora.

  6. #6
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Chiedo scusa, ho sbagliato a scrivere, la riga corretta è questa (l'ho corretto anche nel post prima):
    Codice PHP:
    $miadata = str_replace(' ', '', $miadata);
    che, come l'ho scritta adesso, semplicemente ignora gli spazi, così se all'utente piace scrivere "17 / 3 / 2014" anziché "17/3/2014" a te non cambia la vita.
    Ultima modifica di Luffio : 17-09-2014 alle ore 11.38.48
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  7. #7
    portier non è connesso Utente
    Data registrazione
    07-06-2014
    Messaggi
    127

    Predefinito

    OK, grazie mille, sei stato molto chiaro e preciso.
    Luffio likes this.

Regole di scrittura

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