View Full Version : [MySQL-PHP] Confronto tra date: come?!
Matrixbob
20-07-2005, 10:06
[SITUAZIONE]
Devo implementare che 1 utente non si possa iscrivere ad un evento x il quale è già scaduto il termine utile x l'iscrizione e precisamente questo:
"Vincolo> occorre prevedere una data di scadenza delle iscrizioni oltre la quale esse non sono piu’ permesse".
In MySQL le date sono memorizzate nel formato DATATIME ovvero AAAA-MM-GG hh:mm:ss.
[Domanda1]
Che funzione PHP posso usare x prendere la data attuale da confrontare con la data nel database?!
[Domanda2]
Come lo faccio il confronto tra date?! Esiste magari 1 funzione che le trasforma in numeri interi?!
TNX!
trasformare un timestamp in interi o in un date per fare il confronto poi con un altro date è lungo e faticoso ti tocca fare un po di magfie con substr, date e mktime.
probabilmente fai molto prima a trsformare la tua data di riferimento in un timestamp e fare il confronto su quello con un semplice if ($a < $b) ...
ciao ;)
Matrixbob
20-07-2005, 10:30
trasformare un timestamp in interi o in un date per fare il confronto poi con un altro date è lungo e faticoso ti tocca fare un po di magfie con substr, date e mktime.
probabilmente fai molto prima a trsformare la tua data di riferimento in un timestamp e fare il confronto su quello con un semplice if ($a < $b) ...
ciao ;)
Mi sfugge qualcosa ... o semplicemente non riesco a capirti.
Nella tabella MySQL ho 1 campo "DATETIME" così "AAAA-MM-GG hh:mm:ss" una volta che recupero questo valore come faccio a confrontarlo con il DATETIME del server dove c'è la mia appllicazione web?!
Possibile che non ci sia già qualcosa di consigliato o già fatto x 1 banalità simile?!
Mi sfugge qualcosa ... o semplicemente non riesco a capirti.
Nella tabella MySQL ho 1 campo "DATETIME" così "AAAA-MM-GG hh:mm:ss" una volta che recupero questo valore come faccio a confrontarlo con il DATETIME del server dove c'è la mia appllicazione web?!
Possibile che non ci sia già qualcosa di consigliato o già fatto x 1 banalità simile?!
Ah cavolo! Pensavo fosse timestamp. :muro:
Con timestamp diventa tutto piu facile visto che in fondo è un numero :)
nel tuo caso probabilmente devi fare un po di magie con substr, mktime e date per crearti un date dalla stringa epoi fare la differenza. Ora non ricordo se esiste gia una specie di datediff in php ma se non c'è gia si fa presto a googlare e trovarne una gia fatta :)
ciao ;)
[...] googlare e trovarne una gia fatta :)
Se avessi cercato anche solo 10 secondi avrei trovato questo.
http://pear.php.net/package/Date/
ciao ;)
Matrixbob
20-07-2005, 10:48
Se avessi cercato anche solo 10 secondi avrei trovato questo.
Sto ancora cercando tutt'ora su forum Aruba, Html.it e Google in generale:
http://www.google.it/search?hl=it&q=confronto+tra+date+in+php&spell=1
Matrixbob
20-07-2005, 10:51
Mo ravano anche qui dentro:
[pillola] DATE/TIME e MySQL. (http://forum.html.it/forum/showthread.php?s=&threadid=459634)
solo che mi aspettavo qualcosa di + corto e - complicato.
Matrixbob
20-07-2005, 11:08
Ovviamente se qualcuno sa già come fare non mi faccia leggere :read: 1.000 pagine di codice plz!
:O :) :help:
Matrixbob
20-07-2005, 12:03
Penso di usare queste 2 funzioni PHP:
strtotime (http://it2.php.net/manual/it/function.strtotime.php)
date (http://it2.php.net/manual/it/function.date.php)
Se ho visto male fermatemi mi raccomando!!! :mc:
Naturalemnte se troviamo 1 soluzione tornerà utile anche ai posteri, oltre che ovviamente a me.
Quindi cerchiamo solo di non lasciare il 3D incompleto e quindi inutile .. :mbe:
Matrixbob
21-07-2005, 17:17
Alla fine me la sono cavata semplicemente così:
//preparo le query da eseguire prima di connettermi
$sqlquery = "SELECT scadenza FROM conferenza WHERE argomento='$argomento' AND scadenza > '" . date('Y-m-d H:i:s') . "'";
Devo anche ringraziare le risposte ottenute sul NG :read: "it.comp.www.php", che al quesito:
[SITUAZIONE]
Devo implementare che 1 utente non si possa iscrivere ad un evento x il
quale è già scaduto il termine utile x l'iscrizione e precisamente questo:
"Vincolo> occorre prevedere una data di scadenza delle iscrizioni oltre la
quale esse non sono piu' permesse".
In MySQL le date sono memorizzate nel formato DATATIME ovvero AAAA-MM-GG
hh:mm:ss.
[Domanda1] Che funzione PHP posso usare x prendere la data attuale da
confrontare con la data nel database?!
[Domanda2] Come lo faccio il confronto tra date?! Esiste magari 1 funzione
che le trasforma in numeri interi?!
Han risposto:
Devi trasformare la data in un timestamp, che è un numero intero.
Poi confronti i valori numerici.
Dai un occhio a strtotime().
> In MySQL le date sono memorizzate nel formato DATATIME
> ovvero AAAA-MM-GG hh:mm:ss.
>
> [Domanda1] Che funzione PHP posso usare x prendere la data
> attuale da confrontare con la data nel database?!
date('Y-m-d H:i:s');
http://it2.php.net/manual/it/function.date.php
> [Domanda2] Come lo faccio il confronto tra date?! Esiste
> magari 1 funzione che le trasforma in numeri interi?!
if ($data_corrente > $data_scadenza)
{
// Iscrizione non permessa...
}
> [SITUAZIONE]
> Devo implementare che 1 utente non si possa iscrivere ad un evento x il
> quale è già scaduto il termine utile x l'iscrizione e precisamente questo:
>
> "Vincolo> occorre prevedere una data di scadenza delle iscrizioni oltre la
> quale esse non sono piu’ permesse".
>
> In MySQL le date sono memorizzate nel formato DATATIME ovvero AAAA-MM-GG
> hh:mm:ss.
quel formato implica già un ordinamento 'alfabetico' ne segue che in php
e in mysql basta >,<,>=,<= etc.
se come immagino l'elenco degli eventi viene da un tabella basta
select *,datafineprenotazioneevento as data from tabella where data > now();
hai tutti gli eventi da dopo 'ora' in poi.
:ave: SEMPRE IN GAMBA RAGAZZI! :friend: :sborone:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.