Différence entre deux date en jours (liste récupérée dans un tableau)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 114 fois - Téléchargée 17 fois

Contenu du snippet

Salut
J'ai cherché une fonction permettant de récupérer une liste de date entre deux dates données.
En ne trouvant rien, j?ai décidé le faire moi même en plus c'est pas très compliqué à faire.

Source / Exemple :


<?php

function liste_jours($date_debut, $date_fin) {
    $date_suite = array();
	list($jour1, $mois1, $annee1) = explode("-", $date_debut);
	list($jour2, $mois2, $annee2) = explode("-", $date_fin);
	
	$date1 = mktime(0,0,0,$mois1,$jour1,$annee1); 
	$date2 = mktime(0,0,0,$mois2,$jour2,$annee2); 

	$nombre_jours = (int) (($date2-$date1)/86400);

	
	for($i = 0; $i < $nombre_jours; $i++){
		$date_suite[$i] = date('Y-m-d', strtotime("+$i day ".$date_debut));
	}
	return $date_suite;

}
$Liste_Date=liste_jours('01-12-2010','15-12-2010');
for($i = 0; $i < count($Liste_Date); $i++)
	echo $Liste_Date[$i]."<BR/>";
?>

Conclusion :


amusez vous !

A voir également

Ajouter un commentaire

Commentaires

perruche1
Messages postés
4
Date d'inscription
samedi 23 février 2013
Statut
Membre
Dernière intervention
23 février 2013

Bonjour,
Etant plus (ou moins) que nul en programmation php, je voudrai avoir un formulaire sur mon site ou une personne rentre une date (ou, à défaut qui affiche la date actuelle), et qui calcule et montre automatiquement cette date + 18 jours. Je comprends que cela vous semble un peu bizarre ; c'est simplement dans le cadre d'élevage d'oiseaux, pour prédire la date d'éclosion en fonction de la date de ponte d'un oeuf...

Un grand merci d'avance pour celui ou ceux qui veulent m'aider
questre78
Messages postés
2
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
22 février 2010

salut moi j'utilise cette fonction (une période sur deux ans ou un an )
function generate_Period($planification=array('year1'=>'', 'month1'=>'', 'day1'=>'', 'year2'=>'', 'month2'=>'','day2'=>'','day_of_cours'=>''))
{

$annee =$planification['year1'];
$premiermois =$planification['month1'];
$premierjour =$planification['day1'];
$anneeF =$planification['year2'];
$derniermois =$planification['month2'];
$deuxiemejour =$planification['day2'];
$day =$planification['day_of_cours'];

$planification="planification";
if (!isset ($derniermois)){$derniermois=12;}
if (!isset ($premiermois)){$premiermois=1;}
$day_in_french=array('Sun'=>'Dim', 'Mon'=>'Lun', 'Tue'=>'Mar', 'Wed'=>'Mer', 'Thu'=>'Jeu', 'Fri'=>'Ven', 'Sat'=>'Sam');

print " <tr> \n";
$k=0;
if ($annee==$anneeF && $premiermois<=$derniermois)
{
if ($premiermois==$derniermois && $premierjour>$deuxiemejour)
{
return "erreur";
}
$moisfinannee=$derniermois;
}
else
{
$moisfinannee=12;
}
for($indexmois=$premiermois;$indexmois<=$moisfinannee;$indexmois++)
{
$nbrJourduMois[$annee][$indexmois]=Date("t", mktime(0, 0, 0, $indexmois,1, $annee));
$month=Date("m", mktime(0, 0, 0, $indexmois,1, $annee));

for($indexjour=$premierjour;$indexjour<$nbrJourduMois[$annee][$indexmois];$indexjour++)
{
//(Date("w", mktime(0, 0, 0, $indexmois,$indexjour, $annee))==$day) ?$k++:print"";
if (Date("w", mktime(0, 0, 0, $indexmois,$indexjour, $annee))==$day)
{
$k++;
print '<td>'.$day_in_french[date("D", mktime(0, 0, 0, $month,$indexjour, $annee))]." ".date("d/m/Y", mktime(0, 0, 0, $month,$indexjour, $annee))."</td>\n";
if ($k%4==0)
{
print "</tr><tr>\n";
}
}

}
}

if ($anneeF>$annee)
{

for($indexmois1=1;$indexmois1<=$derniermois;$indexmois1++)
{
$nbrJourduMois[$anneeF][$indexmois1]=Date("t", mktime(0, 0, 0, $indexmois1,1, $anneeF));
$month=Date("m", mktime(0, 0, 0, $indexmois1,1, $anneeF));
for($indexjour1=1;$indexjour1<$nbrJourduMois[$anneeF][$indexmois1];$indexjour1++)
{
if (Date("w", mktime(0, 0, 0, $indexmois1,$indexjour1, $anneeF))==$day)
{
$k++;

print '<td>'.$day_in_french[date("D", mktime(0, 0, 0, $month,$indexjour1, $anneeF))]." ".date("d/m/Y", mktime(0, 0, 0, $month,$indexjour1, $anneeF))."</td>\n";
if ($k%4==0)
{
print "</tr><tr>\n";
}
}

}
}
}
print " </tr>";
}
cs_nashouille
Messages postés
21
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
11 juillet 2008

Pour prendre les dates dans les deux format

<?php
date_default_timezone_set('Europe/Paris');

function liste_jours($date_debut, $date_fin) {

$date_suite = array($date_debut, $date_fin);

foreach($date_suite as $key => $value){

if(!($date = date_create($value)))
return false;

list($annee, $mois, $jour) = explode("-", date_format($date,'Y-m-d'));
$date_suite[$key] = mktime(0,0,0, $mois, $jour, $annee);
}

$nbrJours = (int)(($date_suite[1]-$date_suite[0])/86400);

for($i = 0; $i <= $nbrJours; $i++)
$date_suite[$i] = date('Y-m-d', strtotime("+$i day ".$date_debut));

return $date_suite;
}
?>
Waredan
Messages postés
22
Date d'inscription
vendredi 8 janvier 2010
Statut
Membre
Dernière intervention
19 février 2010

Y-m-d, cela va de soi ..
Waredan
Messages postés
22
Date d'inscription
vendredi 8 janvier 2010
Statut
Membre
Dernière intervention
19 février 2010

Tu as lu les commentaires précédents ? Si tu veux utiliser un format différent, je te conseille de reprendre ma fonction donnée en commentaire #1 .. remplace "d/m/Y" par "Y-d-d" ..

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.