Probleme avec mon strotime...
Résolu
Marlocq
Messages postés
116
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Voila mon problème :
Je suis en train de créer un moteur de recherche qui permet à l'utilisateur de faire une recherche sur les dates (soit par mois soit par année)entre autres. Le soucis viens du faites qu'a partir du moment ou on ne rentre pas un mois du premier if le strtotime me retourne systématique la valeur 1391209200 ou plus selon le jour mais ça équivaut de toute façon au 1970/01/01 et donc pas la date entrée...
Voici le code:
$yearpost=$_POST['an'];
$moispost=$_POST['mois'];
$datedeb = "$yearpost-$moispost-1";
$datedebstr = strtotime ($datedeb);
if ($moispost==1 or $moispost==3 or $moispost==5 or $moispost==7 or $moispost==8 or $moispost==10 or $moispost==12) {
$datefin = "$yearpost-$moispost-31";
$datefinstr = strtotime ($datefin);
} elseif ($moispost==2) {
if (date("L", mktime(0, 0, 0, 1, 1, $yearpost)) == 1) {
$datefin = "$yearpost-$moispost-29";
$datefinstr = strtotime ($datefin);
}
else {
$datefin = "$yearpost-$moispost-28";
$datefinstr = strtotime ($datefin);
}
} else {
$datefin = "$yearpost-$moispost-30";
$datefinstr = strtotime ($datefin);
}
La date d'entré est toujours la valeur mois à laquelle je rajoute 01 et la date de sotie moi + x jours en fonction du mois...
Je suis en train de créer un moteur de recherche qui permet à l'utilisateur de faire une recherche sur les dates (soit par mois soit par année)entre autres. Le soucis viens du faites qu'a partir du moment ou on ne rentre pas un mois du premier if le strtotime me retourne systématique la valeur 1391209200 ou plus selon le jour mais ça équivaut de toute façon au 1970/01/01 et donc pas la date entrée...
Voici le code:
$yearpost=$_POST['an'];
$moispost=$_POST['mois'];
$datedeb = "$yearpost-$moispost-1";
$datedebstr = strtotime ($datedeb);
if ($moispost==1 or $moispost==3 or $moispost==5 or $moispost==7 or $moispost==8 or $moispost==10 or $moispost==12) {
$datefin = "$yearpost-$moispost-31";
$datefinstr = strtotime ($datefin);
} elseif ($moispost==2) {
if (date("L", mktime(0, 0, 0, 1, 1, $yearpost)) == 1) {
$datefin = "$yearpost-$moispost-29";
$datefinstr = strtotime ($datefin);
}
else {
$datefin = "$yearpost-$moispost-28";
$datefinstr = strtotime ($datefin);
}
} else {
$datefin = "$yearpost-$moispost-30";
$datefinstr = strtotime ($datefin);
}
La date d'entré est toujours la valeur mois à laquelle je rajoute 01 et la date de sotie moi + x jours en fonction du mois...
4 réponses
Bonjour
Je ne vois pas où est ton problème, j'ai essayé ton script et il a l'air de bien marcher.
Et la valeur 1391209200 ne correspond pas au 1970/01/01 (début de l'ère UNIX = 0), mais au 1er février 2014.
Le problème vient peut-être des valeurs que tu passes dans $_POST['an'] et $_POST['mois'] ?
Je ne vois pas où est ton problème, j'ai essayé ton script et il a l'air de bien marcher.
Et la valeur 1391209200 ne correspond pas au 1970/01/01 (début de l'ère UNIX = 0), mais au 1er février 2014.
Le problème vient peut-être des valeurs que tu passes dans $_POST['an'] et $_POST['mois'] ?
Non en faite grâce à toi de manière indirecte j ai repéré ma connerie...
je faisais
$datefinbis =date("Y-m-d", $datefin);
$datedebbis=date("Y-m-d", $datedeb);
à la place de
$datefinbis =date("Y-m-d", $datefinstr);
$datedebbis=date("Y-m-d", $datedebstr);
Note que le problème se pose sur autre chose maintenant...
Je vais essayer de voir d'où viens mon soucis avant de remettre un poste ici
je faisais
$datefinbis =date("Y-m-d", $datefin);
$datedebbis=date("Y-m-d", $datedeb);
à la place de
$datefinbis =date("Y-m-d", $datefinstr);
$datedebbis=date("Y-m-d", $datedebstr);
Note que le problème se pose sur autre chose maintenant...
Je vais essayer de voir d'où viens mon soucis avant de remettre un poste ici