Visualizzazione dei risultati da 1 a 7 su 7

Discussione: controllo tra date

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892

    controllo tra date

    Scusate, disturbo ancora per una domanda (spero) banale.
    Io ricevo due date da un form, e prima di scriverle, vorrei controllarle: la prima, infatti, deve essere necessariamente anteriore alla seconda.

    Se provo così non funziona:

    codice:
    $data1=$_GET['data1'];
    $data2=$_GET['data2'];
    If ($data1>$data2) {
    print "errore";
    }
    non funziona in quanto interpreta le due date come numeri, e quindi, se data1 è: 01/02/2004 e data2 è: 31/01/2000 per lui va bene in quanto 01 è più piccolo di 31. Come posso fare? :master:

  2. #2
    Credo si possa fare in javascript direttamente dal form del CLIENT.

    Se vuoi confrontarli in php dovresti trasferire la data in UNIX TIMESTAMP (n. di secondi) e verificare con una if la condizione richiesta.

    Anche qui un explode ma con un criterio diverso:
    codice:
    $data1 = explode('/', $GET_['data1'];
    $data2 = explode('/', $GET_['data2'];
    
    $data_da = mktime (0,0,0, $data1[1], $data1[0], $data1[2];
    $data_a = mktime (0,0,0, $data2[1], $data2[0], $data2[2];
    
    if($data_da >= $data_a) {
    print "errore";
    }

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    non mi funziona, scusami.

    Ho fatto così:

    codice:
    $data1 = explode('/', $GET_['dataarrivo']);
    $data2 = explode('/', $GET_['dataaccadimento']);
    
    $data_da = mktime (0,0,0, $data1[1], $data1[0], $data1[2]);
    $data_a = mktime (0,0,0, $data2[1], $data2[0], $data2[2]);
    
    if($data_da < $data_a) {
    print "errore";
    
    }
    ma con qualsiasi combinazione di data va bene.Le date vengono inviatre con il formato: 01/01/2005

  4. #4
    Be questa volta ho sbagliato io a scrivere $GET.

    L'ho fatto per vedere se eri attento...

    Si scrive $_GET[var] e non $GET_[var]



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

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    macché non va neanche così...
    codice:
    $data1 = explode('/', $_GET['dataarrivo']);
    $data2 = explode('/', $_GET['dataaccadimento']);
    
    $data_da = mktime (0,0,0, $data1[1], $data1[0], $data1[2]);
    $data_a = mktime (0,0,0, $data2[1], $data2[0], $data2[2]);
    
    if($data_da < $data_a) {
    per lui le date vanno tutte bene...


  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    CERTO che non funziava: il method del form ERA POST!!!

    Scusa tanto...


  7. #7
    Stampa il valore....

    echo "Prima data UNIX $data_da - Seconda data $data_a";

    questo l'ho copiato e provato.
    codice:
    $_GET['dataarrivo'] = '1/1/2005';
    $_GET['dataaccadimento'] = '2/2/2005';
    
    $data1 = explode('/', $_GET['dataarrivo']);
    $data2 = explode('/', $_GET['dataaccadimento']);
    
    $data_da = mktime (0,0,0, $data1[1], $data1[0], $data1[2]);
    $data_a = mktime (0,0,0, $data2[1], $data2[0], $data2[2]);
    
    if($data_da < $data_a) {
    print "errore";
    
    }
    controlla i dati che trasferisci con:

    print_r($_GET);

    Li puoi vedere anche nell'URL. Sei sicuro sia _GET e non _POST ???


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

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.