- Home
- Categorie
- Coding e Sistemistica
- Coding
- strtoime e la data maggiore e minore
-
strtoime e la data maggiore e minore
Praticamente avevo scritto una cosa del genere:
[PHP]$timer=fopen("zero.dat","r");
$timer2=fread($timer,filesize("zero.dat"));
$datadioggi = date ("M d, Y g:i:s a");
$datamod = date('M d, Y g:i:s a', strtotime("$timer2 + 1 minute"));
if ($datadioggi < $datamod2) {
echo "Devi attendere altri 60 secondi";
exit;
}[/PHP]dove dentro zero.dat c'è la data:
Gen 12, 2007 1:16:17 pmdovrebbe controllare se la data scritta in zero.dat sia minore di almeno 60 secondi da quella attuale.
Tutto va bene se vengono usate due date dello stesso mese, ma se ne utilizzo una di gennaio e l'attuale di febbario ho seri problemi.
Come posso fare?
non è necessario comunque riparare questo se avete altre alternative postate pure
-
ma sbaglio o strtotime dovrebbe restituire un date formato unix time?
quindi ti basterà fare cosi'$timer=fopen("zero.dat","r");
$timer2=fread($timer,filesize("zero.dat"));
$datamod = strtotime($timer2);
$sum = mktime ( date("h"), date("i"), date("s") + 60, date("m"), date("d"), date("Y") );if ($datamod < $sum) {
echo "Devi attendere altri 60 secondi";
exit;
}
-
@Melkor said:
ma sbaglio o strtotime dovrebbe restituire un date formato unix time?
quindi ti basterà fare cosi'$timer=fopen("zero.dat","r");
$timer2=fread($timer,filesize("zero.dat"));
$datamod = strtotime($timer2);
$sum = mktime ( date("h"), date("i"), date("s") + 60, date("m"), date("d"), date("Y") );if ($datamod < $sum) {
echo "Devi attendere altri 60 secondi";
exit;
}non funziona cosi....:?
mi da sempre da attendere altri 60 secondi
e mi alle costanti ha assegnato i valori di:
-1 e 1171517397
e quindi fa una variabile di:
if (-1 < 1171517397)
:bho: ?
-
-1 è il valore restituito dalla funzione strtotime se non viene riconosciuto il formato della data!
è molto probabile che nn riconosca la data nel file zero.datmolto probabilmente perchè Gen 12, 2007 1:16:17 pm è scritta in italiano
lui l'aspetta in eng
-
@Melkor said:
-1 è il valore restituito dalla funzione strtotime se non viene riconosciuto il formato della data!
è molto probabile che nn riconosca la data nel file zero.datmolto probabilmente perchè Gen 12, 2007 1:16:17 pm è scritta in italiano
lui l'aspetta in eng
e come diventa in inglese?
-
la data dentro il file zero.dat la metti te? tramite altro script? o te la genera qualche applicazione da te non controllabile?
perchè se è cosi' gli fai mettere una data di questo formato:
"Y-m-d H:i:s"
strtotime sicuramente la riconosce e tutto funziona!
-
Ma è normale che il primo $datamod sia maggiore al secondo $sum?
ma non dovrebbe essere il contrario?
comunque non funziona ottengo questo
$datamod $sum
1171722184 e 1171679250è chiaro che cosi non entrerà mai nella variabile, e neanche se faccio l'iverso funziona.....che devo fare.
-
sum nn è altro che la data e ora di quel momento + 60 secondi
nel tuo file nn so che date c'è quindi vedi te
la soluzione ce l'hai
-
@Melkor said:
sum nn è altro che la data e ora di quel momento + 60 secondi
nel tuo file nn so che date c'è quindi vedi te
la soluzione ce l'hai
La data dentro zero.dat è 2007-02-17 15:18:21
la data in cui ho provato lo script era circa 2 minuti avanti.Ebbene ottengo il primo maggiore del secondo ...molto maggiore :():
non c'è quasi mai un equilibrio o si ha in tempi ben oltre i 60 secondi....
-
@alessiofbt said:
La data dentro zero.dat è 2007-02-17 15:18:21
la data in cui ho provato lo script era circa 2 minuti avanti.Ebbene ottengo il primo maggiore del secondo ...molto maggiore :():
non c'è quasi mai un equilibrio o si ha in tempi ben oltre i 60 secondi....
non è che non capisce che c'è differenza tra le 11 del mattino e quelle di sera?
perchè facendo alcuni calcoli come questi:
[PHP]$timer2 = "2007-02-17 11:18:21";
$datamod = strtotime($timer2);
$sum = mktime ( date("h"), date("i"), date("s") + 60, date("m"), date("d"), date("Y") );$op = $datamod - $sum;
echo "$datamod < $sum e quindi differenza di $op";
if ($datamod < $sum) {
echo "Devi attendere altri 60 secondi";
exit;
}[/PHP]alle ore 23:18 entrambi coincidono più o meno al variare dei secondi.
quindi cosa dovrei fare ora????