par
Bisvan » 21 févr. 2012, 11:03
Voici mon script actuel...mais franchement c'est bien compliqué je trouve...j'aimerai alléger tout ça...
// DATE DE DEBUT
////////////////////////////////////////
// Timestamp de la 1e date
$datedebut = explode("-",$datedebut);
$TIME_datedebut = mktime (0,0,0,$datedebut[1],$datedebut[2],$datedebut[0]);
// Numéro du jour de la 1ère date d'activité
$jourdebut = (int) date('w', $TIME_datedebut);
////////////////////////////////////////
////////////////////
// DATE FIN
////////////////////
// Date actuelle (date fin)
$datefin=date('Y-m-d');
$datefin = explode("-",$datefin);
$TIME_datefin = time();
// Numéro du jour de la date du jour
$jourfin = (int) date('w', $TIME_datefin);
////////////////////////////////////////
////////////////////
// ECART EN JOUR ENTRE LES DEUX DATES
////////////////////
// on calcule le nombre de secondes d'écart entre les deux dates
$ecart_secondes = $TIME_datefin - $TIME_datedebut;
// puis on tranforme en jours (arrondi inférieur)
$ecart_jours = floor($ecart_secondes / (60*60*24));
$ecart_jours =$ecart_jours+1;
echo "$ecart_jours<BR>";
////////////////////////////////////////
// 1e semaine
if($jourdebut=="0")
{$diff="6";$enlev0="1";}
elseif($jourdebut=="1")
{$diff="0";$enlev0="7";}
elseif($jourdebut=="2")
{$diff="1";$enlev0="6";}
elseif($jourdebut=="3")
{$diff="2";$enlev0="5";}
elseif($jourdebut=="4")
{$diff="3";$enlev0="4";}
elseif($jourdebut=="5")
{$diff="4";$enlev0="3";}
elseif($jourdebut=="6")
{$diff="5";$enlev0="2";}
$date_debut_semaine_1 = mktime(date("H"), date("i"), date("s"), $datedebut[1], $datedebut[2]-$diff, $datedebut[0]);
$date_debut_semaine_1= date('Y-m-d', $date_debut_semaine_1);
$date_debut_semaine_1 = explode("-",$date_debut_semaine_1);
$date_fin_semaine_1 = mktime(date("H"), date("i"), date("s"), $date_debut_semaine_1[1], $date_debut_semaine_1[2]+6, $date_debut_semaine_1[0]);
$date_fin_semaine_1= date('Y-m-d', $date_fin_semaine_1);
$date_fin_semaine_1 = explode("-",$date_fin_semaine_1);
echo "$date_debut_semaine_1[2]/$date_debut_semaine_1[1]/$date_debut_semaine_1[0] $date_fin_semaine_1[2]/$date_fin_semaine_1[1]/$date_fin_semaine_1[0]<BR>";
// Dernière semaine
if($jourfin=="0")
{$diff="6";$enlev="7";}
elseif($jourfin=="1")
{$diff="0";$enlev="1";}
elseif($jourfin=="2")
{$diff="1";$enlev="2";}
elseif($jourfin=="3")
{$diff="2";$enlev="3";}
elseif($jourfin=="4")
{$diff="3";$enlev="4";}
elseif($jourfin=="5")
{$diff="4";$enlev="5";}
elseif($jourfin=="6")
{$diff="5";$enlev="6";}
$ecart_jours2=$ecart_jours-$enlev0-$enlev;
$date_debut_semaine_derniere = mktime(date("H"), date("i"), date("s"), $datefin[1], $datefin[2]-$diff, $datefin[0]);
$date_debut_semaine_derniere= date('Y-m-d', $date_debut_semaine_derniere);
$date_debut_semaine_derniere = explode("-",$date_debut_semaine_derniere);
$date_fin_semaine_derniere = mktime(date("H"), date("i"), date("s"), $date_debut_semaine_derniere[1], $date_debut_semaine_derniere[2]+6, $date_debut_semaine_derniere[0]);
$date_fin_semaine_derniere= date('Y-m-d', $date_fin_semaine_derniere);
$date_fin_semaine_derniere = explode("-",$date_fin_semaine_derniere);
echo "$date_debut_semaine_derniere[2]/$date_debut_semaine_derniere[1]/$date_debut_semaine_derniere[0] $date_fin_semaine_derniere[2]/$date_fin_semaine_derniere[1]/$date_fin_semaine_derniere[0]<BR>";
Les deux variables écarts $ecart_jours2 me donne le nombre de jour entre la première semaine et la dernière semaine ce qui me permet ensuite de compter combien de semaine séparent ma semaine début et ma semaine fin afin de faire une boucle.
Mais franchement c'est moche comme script...
Voici mon script actuel...mais franchement c'est bien compliqué je trouve...j'aimerai alléger tout ça...
[php]
// DATE DE DEBUT
////////////////////////////////////////
// Timestamp de la 1e date
$datedebut = explode("-",$datedebut);
$TIME_datedebut = mktime (0,0,0,$datedebut[1],$datedebut[2],$datedebut[0]);
// Numéro du jour de la 1ère date d'activité
$jourdebut = (int) date('w', $TIME_datedebut);
////////////////////////////////////////
////////////////////
// DATE FIN
////////////////////
// Date actuelle (date fin)
$datefin=date('Y-m-d');
$datefin = explode("-",$datefin);
$TIME_datefin = time();
// Numéro du jour de la date du jour
$jourfin = (int) date('w', $TIME_datefin);
////////////////////////////////////////
////////////////////
// ECART EN JOUR ENTRE LES DEUX DATES
////////////////////
// on calcule le nombre de secondes d'écart entre les deux dates
$ecart_secondes = $TIME_datefin - $TIME_datedebut;
// puis on tranforme en jours (arrondi inférieur)
$ecart_jours = floor($ecart_secondes / (60*60*24));
$ecart_jours =$ecart_jours+1;
echo "$ecart_jours<BR>";
////////////////////////////////////////
// 1e semaine
if($jourdebut=="0")
{$diff="6";$enlev0="1";}
elseif($jourdebut=="1")
{$diff="0";$enlev0="7";}
elseif($jourdebut=="2")
{$diff="1";$enlev0="6";}
elseif($jourdebut=="3")
{$diff="2";$enlev0="5";}
elseif($jourdebut=="4")
{$diff="3";$enlev0="4";}
elseif($jourdebut=="5")
{$diff="4";$enlev0="3";}
elseif($jourdebut=="6")
{$diff="5";$enlev0="2";}
$date_debut_semaine_1 = mktime(date("H"), date("i"), date("s"), $datedebut[1], $datedebut[2]-$diff, $datedebut[0]);
$date_debut_semaine_1= date('Y-m-d', $date_debut_semaine_1);
$date_debut_semaine_1 = explode("-",$date_debut_semaine_1);
$date_fin_semaine_1 = mktime(date("H"), date("i"), date("s"), $date_debut_semaine_1[1], $date_debut_semaine_1[2]+6, $date_debut_semaine_1[0]);
$date_fin_semaine_1= date('Y-m-d', $date_fin_semaine_1);
$date_fin_semaine_1 = explode("-",$date_fin_semaine_1);
echo "$date_debut_semaine_1[2]/$date_debut_semaine_1[1]/$date_debut_semaine_1[0] $date_fin_semaine_1[2]/$date_fin_semaine_1[1]/$date_fin_semaine_1[0]<BR>";
// Dernière semaine
if($jourfin=="0")
{$diff="6";$enlev="7";}
elseif($jourfin=="1")
{$diff="0";$enlev="1";}
elseif($jourfin=="2")
{$diff="1";$enlev="2";}
elseif($jourfin=="3")
{$diff="2";$enlev="3";}
elseif($jourfin=="4")
{$diff="3";$enlev="4";}
elseif($jourfin=="5")
{$diff="4";$enlev="5";}
elseif($jourfin=="6")
{$diff="5";$enlev="6";}
$ecart_jours2=$ecart_jours-$enlev0-$enlev;
$date_debut_semaine_derniere = mktime(date("H"), date("i"), date("s"), $datefin[1], $datefin[2]-$diff, $datefin[0]);
$date_debut_semaine_derniere= date('Y-m-d', $date_debut_semaine_derniere);
$date_debut_semaine_derniere = explode("-",$date_debut_semaine_derniere);
$date_fin_semaine_derniere = mktime(date("H"), date("i"), date("s"), $date_debut_semaine_derniere[1], $date_debut_semaine_derniere[2]+6, $date_debut_semaine_derniere[0]);
$date_fin_semaine_derniere= date('Y-m-d', $date_fin_semaine_derniere);
$date_fin_semaine_derniere = explode("-",$date_fin_semaine_derniere);
echo "$date_debut_semaine_derniere[2]/$date_debut_semaine_derniere[1]/$date_debut_semaine_derniere[0] $date_fin_semaine_derniere[2]/$date_fin_semaine_derniere[1]/$date_fin_semaine_derniere[0]<BR>";
[/php]
Les deux variables écarts $ecart_jours2 me donne le nombre de jour entre la première semaine et la dernière semaine ce qui me permet ensuite de compter combien de semaine séparent ma semaine début et ma semaine fin afin de faire une boucle.
Mais franchement c'est moche comme script...