Comparaison des dates

Eléphant du PHP | 114 Messages

12 mars 2006, 12:21

Bonjour
J'avais ici même résolu un problème sur la comparaison des dates.
Cependant je me pose une question, voici l'exemple :
$Ttrentejours = mktime(00, 00, 00, date("m") , date("d") - 30, date("Y")); 
$Dtrentejours = date("Y-m-d", $Tdansdixjours);

$req = $sql="UPDATE membre SET neutre=1 where date1 <'$Dtrentejours'";
mysql_query($requete) or die (mysql_error());
L'important c'est : date("d") - 30

Voici donc ma question :
Est-ce que php fait le calcul avec les jours ou vaudrait-il mieux faire : date("m")-1
Je pourrais aussi en suivant on exemple faire :date("d") - 100 ?

Merci de bien vouloir me dire si ma méthode est correcte ou si il vaut mieux arrivé a 30 jours ou plus soustraire les mois ?

Merci d'avance

Mammouth du PHP | 19672 Messages

12 mars 2006, 12:45

J'aurais procédé un peu différamment pour rendre le script plus souple à l'utilisation :
<?php
/* On définit dans une variable le nombre de jours à retirer */
$nbJoursRetrait = 120;

/* On crée un timestamp de la date en cours */
$Ttrentejours = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
echo("<p>". $Ttrentejours ."</p>\n");

/* On calcule combien on doit retirer à la date en cours */
$retrait = $nbJoursRetrait * 24 * 60 * 60;
echo("<p>". $retrait ."</p>\n");

/* On définit le timestamp de la date recalculée après retrait */
$nouvelleDate = $Ttrentejours - $retrait;

/* On recompose la date après calcul */
$Dtrentejours = date("Y-m-d", $nouvelleDate);
echo("<p>". $Dtrentejours ."</p>\n");

$req = $sql="UPDATE membre SET neutre=1 where date1 < '". $Dtrentejours ."'";
mysql_query($requete) or die (mysql_error());
?>
La première variable te permet de changer le nombre de jours selon le besoin du moment, c'est plus souple qu'une valeur en dur. Ensuite, je fais le retrait après calcul en retirant un nombre de secondes au timestamp de la date en cours et je recompose la nouvelle date ensuite. Tu as moins de chances d'erreur : faire date("m") - 1 risque de te donner une valeur négative en janvier: ça marche aussi note bien, mais tout dépend aussi des besoin de ton script.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 114 Messages

12 mars 2006, 13:00

Effectivement c'est bien mieux et plus pratique.
Comme quoi j'ai eu raison de poser la question.
Merci bien.