problema confronto fra date

raphael_php

Nuovo Utente
20 Feb 2012
13
0
0
Ciao ho bisogno ancora del vostro aiuto. Volevo fare una semplice operazione di confronto date con un if ma sicuramente sbaglio qualche cosa e l'operazione non riesce.
Inserendo il var_dump delle variabili e stampando i risultati a video vedo che due su tre valori corrispondono ma il terzo $data2 è errato eppure mi sembra di avere scritto bene la sintassi. Riporto i risultati sotto, in pratica sembra che $data2 non tenga conto del valore di partenza $pswdate. Ringrazio in anticipo per l'aiuto. Ciao Luca

PHP:
$pswdate = $row['pswdate'];
$pswlease = $row['pswlease'];

if ($data0 > $data2) {
  echo "sono passati piu di 90gg - richiesto il rinnovo della password";
}


echo $data0 = strtotime('now');
echo date("y-m-d", $data0);

echo $data1 = strtotime($pswdate);
echo date("y-m-d", $data1);

//echo $data2 = strtotime("+90 days", $pswdate);
echo $data2 = strtotime("+".$pswlease." days", $pswdate);
echo date("y-m-d", $data2);


var_dump($pswdate);
var_dump($pswlease);

1330983015
12-03-05

1330556400
12-03-01

7778012
70-04-01

string '2012-03-01 00:00:00' (length=19)

string '90' (length=2)
 
Ultima modifica:
Ciao,
intanto io ti posto una soluzione alternativa

PHP:
<?php
// connessione al db
$conn = mysql_connect("localhost", "root", "");
$db = mysql_select_db("database");

// recupero data di cambio password - presumo
$pswdate = "2012-02-01 10:00:00";
//calcolo differenza direttamente su mysql
$query = "SELECT DATEDIFF(curdate(),'$pswdate') as DT";
// eseguo la query
$res = mysql_query($query);
// confronto il risultato con i giorni prefissati
if (mysql_result($res, 0, "DT") >= 90) {
    // avviso della scadenza e costringo al cambio
    echo "Password scaduta";
} else {
    // calcolo quanto manca
    echo "La password scade tra " . (90 - mysql_result($res, 0, "DT")) . " giorni";
}
?>
 
Ciao criric, grazie mille per il tuo suggerimento. Ho comunque risolto il problema con un piccolo stratagemma.

PHP:
//echo $data0 = strtotime('now'); echo date("y-m-d", $data0); 
//echo $data1 = strtotime($pswdate); echo date("y-m-d", $data1); 
//echo $data2 = strtotime("-".$pswlease." days"); echo date("y-m-d", $data2);

if (strtotime("-".$pswlease." days") > strtotime($pswdate)) {
	
	$pswnw = floor((strtotime("-".$pswlease." days") - strtotime($pswdate))/(60*60*24));
	echo " password scaduta da ".$pswnw." giorni";
	  	
}
	$pswnw = floor((strtotime("-".$pswlease." days") - strtotime($pswdate))/(-60*60*24));
	echo " password non scaduta ".$pswnw." giorni rimanenti";
 

Discussioni simili