Bonjour,

Je cherche à mettre un place un compteur de solde de congé.
Ce que j'ai voulu faire :
  • obtenir la différence de jours entre la date de début et la date de fin
    obtenir le nom du jour d'une date précise
    faire une boucle de la durée de la différence
    vérifié les jours, et pour chaque jours ajouté une valeur défini au compteur

voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<?php 
 
function obtenir_jour($ladate){ // fonction qui retourne le jour en fonction de la date
 
	$jour = date('D', strtotime($ladate));
	return $jour;
}
 
function incrementer_compteur(){ // fonction qui va retourner en compteur en fonction des jour rentrés en paramètre 
 
$date_debut = new DateTime('2018-10-01');
$date_fin = new DateTime('2018-10-01');
$difference = $date_debut ->diff($date_fin); //obtenir la différence entre ces deux dates.
$interval= $difference ->format('%R%a'); //avoir la difference en nombre de jours, mais avec un + devant qui me fais *****
 
	for ($i=0; $i<=$interval; $i++){
 
		if (obtenir_jour($date_debut + $i) == 'wed'){ // si la date correspond à vendredi
			$compteur +=2;
		}
		elseif (obtenir_jour($date_debut + $i) == 'sun') { //si la date correspond à dimanche
			//on fait rien
		}
		else { //pour tout les autres cas
			$compteur +=1;
		}
	}
 
	return $comteur;
}
?>
J'ai différents problème :
1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$jour = date('D', strtotime($ladate));
Avec ce code, je n'arrive pas à mettre une variable, par contre si je met '2018-07-23' ça marche.

2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$interval= $difference ->format('%R%a')
Pour avoir le format de la date, si laisse comme c'est, ça marche, mais j'ai un + au début... et si je met %d je n'ai pas de plus au début, mais il ne prend en compte la différence que entre les jours, il ne compte les mois. (2018-07-07 et 2018-08-08 la différence sera de 1)

3)J'espère que ce sont mes deux seuls problèmes...

Si vous avez des idées, ça m'aiderai

Merci d'avance.