Probléme avec boucle pour date PHP
rafa
-
El Fenomeno -
El Fenomeno -
Bonjour,
je suis confronté à un petit problème de boucle pour ajouter plusieurs jour à une date..
le script ci-dessous on calcule le nombre de jours entre deux dates, puis l'ajoute à la date de depart.
ex: entre 2005-02-28 et 2005-03-07 la diference est de 7 jours donc la date affiché est 2005-03-07
pour ça c'est bon, par contre je voudrais pouvoir incrementer d'un jour à chaque fois la date de depart et recuperer
toutes les dates intermediares
pour les insèrer dans une table MYSQL ( le champ date) les dates comprises entre les deux (au même format)
c'est à dire je devrais avoir dans mon champ Date les 8 enregistrements dans l'ordre suivant :
2005-02-28
2005-03-01
2005-03-02
2005-03-03
2005-03-04
2005-03-05
2005-03-06
2005-03-07
Donc j'ai mis une boucle qui compare et incremente de 1 (en commençant par 0) à chaque fois.
Le problème c'est que evidenment ça me donne une erreur (Fatal error: Cannot redeclare dateop() (previously declared in...)!
Donc comment je peux faire pour recuperer toutes mes dates sur une (ou plusieurs variables) histoire de pouvoir les insèrer après dans ma table!
Voila j'espere que c'est assez clair..
Merci
Rafael
PS : voici le script :
$jour="28";
$mois="02";
$an ="2005";
$jour2="07";
$mois2="03";
$an2="2005";
function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2){ // $calcule la dierence de jours entre les deux dates
$timestamp2 = mktime(0, 0, 0, $mois, $jour, $an);
$timestamp = mktime(0, 0, 0, $mois2, $jour2, $an2);
$diff = floor(($timestamp - $timestamp2) / (3600 * 24));
return $diff;
}
$nbr_jours = diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2);// recupere nombre de jours sur variable $nbr_jours
echo" ça fait: $nbr_jours";//verif nombre de jours sur variable $nbr_jours
for ($i = 0; $i <= $nbr_jours ; $i++) { // on fait une boucle si ajout est = ou sup à 0
echo "<p>ça donne..$i</p>";//verif si la boucle fonctionne
function dateop($jour , $mois , $an , $i){ // $i correspond au nombre de jour à ajouter a la date
$timestamp = mktime(0, 0, 0, $mois, $jour+$i, $an);// aditione la diference de jours à la date de debut
return (date("Y-m-d", $timestamp));
$temp = dateop($jour , $mois , $an , $i);
echo" donc ça devrait faire : $temp";
}
}
je suis confronté à un petit problème de boucle pour ajouter plusieurs jour à une date..
le script ci-dessous on calcule le nombre de jours entre deux dates, puis l'ajoute à la date de depart.
ex: entre 2005-02-28 et 2005-03-07 la diference est de 7 jours donc la date affiché est 2005-03-07
pour ça c'est bon, par contre je voudrais pouvoir incrementer d'un jour à chaque fois la date de depart et recuperer
toutes les dates intermediares
pour les insèrer dans une table MYSQL ( le champ date) les dates comprises entre les deux (au même format)
c'est à dire je devrais avoir dans mon champ Date les 8 enregistrements dans l'ordre suivant :
2005-02-28
2005-03-01
2005-03-02
2005-03-03
2005-03-04
2005-03-05
2005-03-06
2005-03-07
Donc j'ai mis une boucle qui compare et incremente de 1 (en commençant par 0) à chaque fois.
Le problème c'est que evidenment ça me donne une erreur (Fatal error: Cannot redeclare dateop() (previously declared in...)!
Donc comment je peux faire pour recuperer toutes mes dates sur une (ou plusieurs variables) histoire de pouvoir les insèrer après dans ma table!
Voila j'espere que c'est assez clair..
Merci
Rafael
PS : voici le script :
$jour="28";
$mois="02";
$an ="2005";
$jour2="07";
$mois2="03";
$an2="2005";
function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2){ // $calcule la dierence de jours entre les deux dates
$timestamp2 = mktime(0, 0, 0, $mois, $jour, $an);
$timestamp = mktime(0, 0, 0, $mois2, $jour2, $an2);
$diff = floor(($timestamp - $timestamp2) / (3600 * 24));
return $diff;
}
$nbr_jours = diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2);// recupere nombre de jours sur variable $nbr_jours
echo" ça fait: $nbr_jours";//verif nombre de jours sur variable $nbr_jours
for ($i = 0; $i <= $nbr_jours ; $i++) { // on fait une boucle si ajout est = ou sup à 0
echo "<p>ça donne..$i</p>";//verif si la boucle fonctionne
function dateop($jour , $mois , $an , $i){ // $i correspond au nombre de jour à ajouter a la date
$timestamp = mktime(0, 0, 0, $mois, $jour+$i, $an);// aditione la diference de jours à la date de debut
return (date("Y-m-d", $timestamp));
$temp = dateop($jour , $mois , $an , $i);
echo" donc ça devrait faire : $temp";
}
}
A voir également:
- Probléme avec boucle pour date PHP
- Airpods 3 date de sortie - Guide
- Jm date avis - Forum Consommation & Internet
- Jm date désabonnement - Forum Gmail
- Expert php pinterest - Télécharger - Langages
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. ✓ - Forum Graphisme
1 réponse
En me basant sur ton code je crois que je répond à ta demande !
<?php
$jour="28";
$mois="02";
$an ="2005";
$jour2="07";
$mois2="03";
$an2="2005";
function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2){ // $calcule la dierence de jours entre les deux dates
$timestamp2 = mktime(0, 0, 0, $mois, $jour, $an);
$timestamp = mktime(0, 0, 0, $mois2, $jour2, $an2);
$diff = floor(($timestamp - $timestamp2) / (3600 * 24));
return $diff;
}
$nbr_jours = diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2);// recupere nombre de jours sur variable $nbr_jours
echo" ça fait: $nbr_jours Jour(s)<br>";//verif nombre de jours sur variable $nbr_jours
function dateop($jour , $mois , $an , $i){ // $i correspond au nombre de jour à ajouter a la date
$temp = array();
for($j=0;$j<=$i;$j++){
$timestamp = mktime(0, 0, 0, $mois, $jour+$j, $an);// aditione la diference de jours à la date de debut
$temp[$j] = date("Y-m-d", $timestamp);
}
return $temp;
}
$tab = array();
$tab = dateop($jour , $mois , $an , $nbr_jours);
for($k=0;$k<count($tab);$k++){
echo" Jour $k : $tab[$k]<br>";
}
?>
A+
<?php
$jour="28";
$mois="02";
$an ="2005";
$jour2="07";
$mois2="03";
$an2="2005";
function diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2){ // $calcule la dierence de jours entre les deux dates
$timestamp2 = mktime(0, 0, 0, $mois, $jour, $an);
$timestamp = mktime(0, 0, 0, $mois2, $jour2, $an2);
$diff = floor(($timestamp - $timestamp2) / (3600 * 24));
return $diff;
}
$nbr_jours = diff_date($jour , $mois , $an , $jour2 , $mois2 , $an2);// recupere nombre de jours sur variable $nbr_jours
echo" ça fait: $nbr_jours Jour(s)<br>";//verif nombre de jours sur variable $nbr_jours
function dateop($jour , $mois , $an , $i){ // $i correspond au nombre de jour à ajouter a la date
$temp = array();
for($j=0;$j<=$i;$j++){
$timestamp = mktime(0, 0, 0, $mois, $jour+$j, $an);// aditione la diference de jours à la date de debut
$temp[$j] = date("Y-m-d", $timestamp);
}
return $temp;
}
$tab = array();
$tab = dateop($jour , $mois , $an , $nbr_jours);
for($k=0;$k<count($tab);$k++){
echo" Jour $k : $tab[$k]<br>";
}
?>
A+