- Home
- Categorie
- Coding e Sistemistica
- PHP
- Confrontare due date
-
ti sei scordato la cosa più importante... queste date in che formato sono?
-
dd-mm-YYYY
-
Usa mktime() per trasformare tutto in secondi passati da 1-1-1970, 1:00:00 e poi confronta...
-
ok... Ora sembra funzionare
Tnx
-
Rieccomi... XD
Ho dei problemi...
Confrontando queste date: 22/07/2008 e 27-06-2008 con mktime ottengo rispettivamente questi risultati: 1216760032 - 1216778032.
Noterete quindi che la data di oggi (22/07/2008) risulta minore del 27-06-2008... come mai?
Ecco come ho scritto i due mktime:
mktime(date ("d-m-Y"))
mktime(date ("d-m-Y", strtotime ($row['datauscita'])))
-
int mktime ( int $hour , int $minute , int $second , int $month , int $day , int $year [, int $is_dst ] )
devi fare un expldoe per ottenere giorno mese e anno in 3 variabili separate e passarle come parametri alla funzione mktime
-
capisco...
però sarà un caso ma passando la data in formato YYYY-mm-dd il problema che riscontravo si è risolto...
-
non è risolto... stai facendo una cosa senza senso... quella funzione non si usa in quel modo...
-
non ho detto che è giusto, ho detto che casualmente in quel modo il problema non si ripresentava...
Ora implemento l'explodeEDIT:
implementato l'explode:$array = explode("-", $row['datauscita']);
$giorno = $array[2];
$mese = $array[1];
$anno = $array[0];if (mktime(0,0,0, date("m"), date("d"), date("Y")) < mktime(0,0,0, $mese, $giorno, $anno)
Ora funziona... Ho fatto qualche errore? E' la prima volta che uso mktime quindi ditemi voi...
-
Il formato data che uso di solito nei miei script (php, bash ecc) e' YYYYMMDD tutto attaccato. In questo modo si possono confrontare direttamente come interi.
Certo, non si puo' utilizzare in tutte le occasioni, ma per risolveri problemi semplici e' ottimo.Ciao
-
dovrebbe essere giusto...
-
if(time() < mktime(0,0,0, $mese, $giorno, $anno))
time() restituisce il numero di secondi passati da quella data ad ora... (se ho capito bene che vuoi fare, perché lì non serve mktime()
-
@Jeeves said:
if(time() < mktime(0,0,0, $mese, $giorno, $anno))
time() restituisce il numero di secondi passati da quella data ad ora... (se ho capito bene che vuoi fare, perché lì non serve mktime()
praticamente ho fatto un mktime in più?
-
time e mktime(0,0,0, date("m"), date("d"), date("Y")
sono diversi il primo ti resituisce la data coi secondi minuti e ora ATTUALE
il secondo restituisce la mezzanotte ...dipende cosa devi fare... ma rimane il fatto che non sono uguali
-
devo semplicemente permettere ad un utente di aggiungere un gioco alla lista dei suoi giochi solo se la data d'uscita del gioco è <= a quella odierna...
Con l'if sopra riportato ciò avviene...