Rechercher : dans
Par :

Probléme avec boucle pour date PHP

Dernière réponse le 11 mai 2005 à 11:12:35 rafa, le 17 mar 2005 à 18:12:01 
 Signaler ce message aux modérateurs

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";
}

}

Meilleures réponses pour « probléme avec boucle pour date PHP » dans :
Vérifier le format d'une date en PHP VoirIl existe plusieurs méthodes pour verifier le format d'une date en PHP, vous pouvez par exemple découper la chaîne puis tester les valeurs de chaque élément. Plus simplement nous utiliserons les expressions régulières. Pour valider une date au...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
PHP - Affichage de texte sur le navigateur VoirLe but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

 El Fenomeno, le 11 mai 2005 à 11:12:35

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+

Répondre à El Fenomeno