Fondamentalement, ce que je veux faire est d'envoyer un e-mail de suivi sur la commande passée dans les 3 heures plus tard. Ce que j'essaie de faire est d'obtenir la date actuelle (jusqu'au niveau des heures), puis comparez avec le orderdate + 3 heures, pour voir si elle correspond.php ajouter des heures à la date de sortie mauvais résultat
Exemple OrderDate: 2010-06-12 18, après ajouter 3 heures devraient être 2010-06-12 21
Cependant, après ajouter heures, le résultat final deviennent parfois plus, parfois deviennent plus petits ... quelque chose faux.
$now= date('Y-m-d H');
echo $now . "<br>";
...
...
while ($data = mysql_fetch_array ($result))
{
$orderid = $data['orderid'];
$orddate = $data['orddate'];
$corddate= date('Y-m-d H:i:s', $orddate);
$year = substr ($corddate, 0, 4);
$month = substr ($corddate, 5, 2);
$day = substr ($corddate, 8, 2);
$hour = substr ($corddate, 11, 2);
$actualorderdate= $year . "-" . $month . "-" . $day . " " . $hour;
$new_time = mktime ($hour+3, 0, 0, $month, $day, $year);
$year = date ('Y', $new_time);
$month = date ('m', $new_time);
$day= date ('d', $new_time);
$hour= date ('h', $new_time);
$xhourslater= $year . "-" . $month . "-" . $day . " " . $hour;
echo "actualorderdate: ". $actualorderdate. " xhourslater: " . $xhourslater. "<br>";
if($now==$xhourslater)
{
echo "now is 3 hours later" . "<br>";
//send email follow up, then update status as sent, in order not to resend anytime in the 3rd hour.
}
}