Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: problema con checkdate

  1. #1
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    problema con checkdate

    ciao a tutti ho una data nel seguente formato:
    12/7/1980

    se eseguo questa checkdate è tutto ok dal momento che l'elemento separatore è '/'
    codice:
    function checkData($date)
    {
        
        if (!isset($date) || $date=="")
        {
            return 0;
        }
         
         list($dd,$mm,$yy)=explode("/",$date);     
        if ($dd!="" && $mm!="" && $yy!="")
        {
        if (is_numeric($yy) && is_numeric($mm) && is_numeric($dd))
            {
               return checkdate($mm,$dd,$yy);
                return checkdate($dd,$mm,$yy);   
                return checkdate($yy,$mm,$dd);   
                
    
            }
          }      
           
        return 0;
    
    }
    in che modo posso implementarla affinchè siano validi anche li altri separatori come ad esempio '-' o lo spazio ' '
    grazie

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Crei un array con i separatori che vuoi e prima di list()..... controlli che nella stringa ci sia uno dei separatori dell array.

    explode($separatoreTrovato, $stringaData)

  3. #3
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    il fatto è che questa data va inserita in un db che accetta solo il formato con '-'

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    fammi capire bene.. con la funzione passi la data che puo' avere diversi separatori... quindi la spezzi e controlli poi con checkdate...

    dopo di che?? come devi usarla?

  5. #5
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    dunque nella form ho il campo data nascita che va a popolare il campo relativo del db.
    l'utente inserisce la data nel formato che vuole,con l'elemento separatore che più desidera .sicchè può essere :
    es.
    12-3-1980
    12/3-1980
    12 3 1980

    la checkdate deve verificare l'esistenza di questa stringa e di questa data
    il problema è che :
    ad esempio

    la data 12/3/1980
    viene verificata secondo la checkdate come vera dal momento che explode prende quest'elemento separatore' / '
    ma in mysql non viene implementata perchè riconosce il formato con quest'elemento
    separatore:12-3-1980.
    sicchè la data 12/3/1980 anche se passa la checkdate nel db diventa:0000/00/00
    inoltre la checkdate deve anche avere il messaggio d'errore per cui ad esempio:
    7777777777777777777777777
    non è una data valida.
    ecco,spero di aver spiegato il problem

  6. #6
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649

    ...

    toc,toc

  7. #7
    è scomparso =) cmq... Si potrebbe usare un'espressione regolare, e ricerca NN?NN?NNNN oppure NNNN?NN?NN a seconda della lingua (oppure impsotare la lingua e ricavare la data...). e da li risalire alla data e ricostruirla nel formato corretto?

  8. #8
    Originariamente inviato da moonba
    dunque nella form ho il campo data nascita che va a popolare il campo relativo del db.
    l'utente inserisce la data nel formato che vuole,con l'elemento separatore che più desidera .sicchè può essere :
    es.
    12-3-1980
    12/3-1980
    12 3 1980
    la data che ricevi DEVE essere normalizzata. Basta mettere l'esempio di come vuoi riceverla. Non credo abbia senso diversamente, voglio dire, non puoi correre dietro alle fantasie dell'utente.

    il formato per mysql e' quello ansi, "yyyy-mm-dd" oppure "yy-mm-dd" ed il separatore non ha alcuna importanza. Verra' tradotto in - da mysql. Tutti gli altri formati saranno stringhe oppure date equivocate o nulle.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di moonba
    Registrato dal
    Jun 2007
    Messaggi
    649
    grazie piero@mac
    nel senso tu intendi dire che nella form devo mettere ad esempio l'esempio di come dovrà essere inserita la data?
    quindi a fianco della casella di input mettere ad esempio una scritta del tipo:
    la data va inserita nel seguente formato 1990-3-12?
    e quella checkdate riportata all'inizio del form prende come elemento separatore ad esempio solo '-' verifica l'esistenza della data e nel caso fosse ad esempio 888888888 mi da il messaggio d'errore?
    però rimane sempreil problema di base che se non lo specifico e viene inserita 1998/7/12 mysql non la interpreta e mi restituisce 0000-00-00.

  10. #10
    ma xkè nn crei 3 select html, giorno mese ed anno... così hai i dati separati e te li unisci come vuoi tu, invece di mettere un campo testuale...

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.