Eléphant du PHP |
76 Messages
14 nov. 2008, 12:15
exact
alors j'ai trouvé sur le net et en bidouillant la petite fonction du dessus
j'ai réussi à faire ceci d'accord ce n'est pas beau

mais ça marche presque
<?php
function premierjoursemaine($sem,$annee)
{
//cherche le début de l'année en timestamp UNIX
$annee = mktime(0,0,0,1,1,$annee);
//retourne la date-heure du premier jour de la semaine numero $weeknb de l'année $year
$value = $annee + ($sem - 1) * (7 * 86400) - abs(intval(date("w",$annee)) + 1) * 86400;
return mktime(0,0,0,date("m",$value),date("d",$value),date("y",$value));
}
function premieretdernierjoursemaine($sem,$annee)
{
$time1 = premierjoursemaine($sem,$annee);
$time2 = $time1 + 604800; // + 7jours en temp unix
$jour1 = date('D d/m/Y', $time1);
$jour7 = date('D d/m/Y', $time2);
return 'Du '.$jour1.' au '.$jour7;
}
function semainesDuMois($datedebut, $datefin) {
$explDateD = explode('/', $datedebut);
$explDateF = explode('/', $datefin);
$dateD = $explDateD[2].'-'.$explDateD[1].'-'.$explDateD[0];
$dateF = $explDateF[2].'-'.$explDateF[1].'-'.$explDateF[0];
$toTimeStart = strtotime($dateD);
$toTimeEnd = strtotime($dateF);
$jourDeb = date('w', $toTimeStart);
// début de construction du tableau
// boucle sur les semaines
while ($toTimeStart < $toTimeEnd) {
$joursRestant = 7 - $jourDeb+6;
echo $sem= date('W', $toTimeStart);
$toTimeStart = strtotime('+'.$joursRestant.' day', $toTimeStart);
$annee=$explDateD[2];
echo premieretdernierjoursemaine($sem,$annee).'<br>';
}
// Suite et fin du tableau
}
$datedebut="01/11/2008";
$datefin="30/11/2008";
echo semainesDuMois($datedebut, $datefin).'<p>';
$datedebut="01/12/2008";
$datefin="31/12/2008";
echo semainesDuMois($datedebut, $datefin).'<p>';
?>
ar contre il m'affiche:
Code : Tout sélectionner
44Du Sat 25/10/2008 au Fri 31/10/2008
45Du Sat 01/11/2008 au Sat 08/11/2008
46Du Sat 08/11/2008 au Sat 15/11/2008
47Du Sat 15/11/2008 au Sat 22/11/2008
48Du Sat 22/11/2008 au Sat 29/11/2008
49Du Sat 29/11/2008 au Sat 06/12/2008
50Du Sat 06/12/2008 au Sat 13/12/2008
52Du Sat 20/12/2008 au Sat 27/12/2008
la première semaine 44 s'arrête au vendredi.
et il me manque la semaine 51
une petite aide serait la bienvenue
et si qqun pourrait m'aider à faire qque chose de plus propre
