Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433

    mktime - controllo data

    ciao... oggi vi rompo più del solito...

    allora codice:
    Codice PHP:
    if (checkdate($mm,$gg,$aaaa)) {
                                     
    $ret1=2;
                                     if (
    mktime(0,0,0$mm$gg$aaaa) < time())$ret2=0;
                                     if (
    mktime(0,0,0$mm$gg$aaaa) == time())$ret2=1;
                                    if (
    mktime(0,0,0$mm$gg$aaaa) > time())$ret2=2;
                                }else {
    $ret1=1$ret2=0;} 
    il codice controlla se i dati passati corrispondono ad una data e se è vero
    controlla che la data sia passata=0 odierna=1 o futura=2

    il problemino è che funziona tutto se metto una data valida (maggiore o minore ad oggi) se invece metto la data odierna $ret2 viene messo sempre a 0 e non a 1...

    come mai???
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    time restituisce ldata e ora attuale nel formato unix timestamp
    mktime(come tu lo imposti) restituisce la stessa data di time ma all'ora 0:00:00
    quindi i valori sono diversi
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    mmmmhhh.... vero..... e come risolvo?
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    usando la funzione date che trovi sul sito ufficiale

    it.php.net
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    433
    un cosa del genere???
    Codice PHP:
    if (mktime(0,0,0$mm$gg$aaaa) < time())$ret2=0;
                                     if (
    mktime(0,0,0$mm$gg$aaaa) > time())$ret2=2;
                                     
    $nuovadata="$gg/$mm/$aaaa";
                                     
    $dat1=date("d/m/y");
                                     if(
    $nuovadata==$dat1$ret2=1
    in questo modo però dovrei fare una valanga di controlli

    perchè la stringa passata potrebbe essere 17/03/08 o 17/03/2008 17/3/08 17/3/2008 ecc... (oppure nel caso in cui sia il giorno sia ad una cifra la data potrebbe essere 01/03/08 1/3/08 ecc... )
    Donerò loro dei fiori... poiché... sotto le nuvole... tutto è così rozzo e sporco

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    non devi fare milioni di controlli
    tu alla funzione passi i valori di giorno mese e anno che poi trasformi con mktime
    non trasformali e usa quelli per fare il confronto
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.