Question subtile sur les dates...

Résolu
aquewel Messages postés 143 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 juin 2010 - 11 oct. 2006 à 23:37
aquewel Messages postés 143 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 juin 2010 - 23 oct. 2006 à 23:05
bonsoir a tous

depuis kelke temps je gere a trouver une solution pour trouver la date du dernier weekend d'un mois...
 
alors je voulais savoir si quelqu'un aurait une petite idee pour mon probleme :-)

merci quand a vos reponses
axel

6 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
12 oct. 2006 à 09:56
Hello,

y a plus simple :

Version PHP 5 :
<?php
function getLastWeekEnd ($sYear, $sMonth) {
    try {
        $iDate = @mktime (0,0,0, (int)$sMonth + 1, 1, (int)$sYear);
        if (false === $iDate) {
            throw new Exception ('L\'année ou/et le mois donnés ne sont pas valides');
        }
        return strftime ('%d-%m-%Y', strtotime ('last Saturday', $iDate));
    } catch (Exception $e) {
        echo $e -> getMessage ();
    }

}
echo getLastWeekEnd ('2006', '10');
?>

Version PHP 4 :
<?php
function getLastWeekEnd2 ($sYear, $sMonth) {
    $iDate = @mktime (0,0,0, (int)$sMonth + 1, 1, (int)$sYear);
    if (-1 === $iDate) {
        trigger_error ('L\'année ou/et le mois donnés ne sont pas valides', E_USER_ERROR);
    }
    return strftime ('%d-%m-%Y', strtotime ('last Saturday', $iDate));
}

echo getLastWeekEnd2 ('2006', '10');
?>
3
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
12 oct. 2006 à 01:25
tu peux utiliser mktime pour trouver le timestamp unix du debut du mois que tu veux, puis lui rajoute 3600*24*22
puis tu utilise date($tempunixcumulé,w); et tu regarde avec une soustraction quand est le prochain samedi.
Apres tu peux faire des ajouts comme regarder si le dernier jour du mois n'est pas un samedi;

Tu peux faire une fonction ou on rentre le mois et l'année et qui sort la date du dernier week end =)

_Marikou
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
12 oct. 2006 à 09:58
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
12 oct. 2006 à 18:25
Certainement pas comme ca Mala ^^
Dégage le try{}catch{}de ta fonction, ca doit se faire hors fonction ca :)

<?php
function getLastWeekEnd ($sYear, $sMonth) {
      $iDate = @mktime (0,0,0, (int)$sMonth + 1, 1, (int)$sYear);
        if (false === $iDate) throw new Exception ('L\'année ou/et le mois donnés ne sont pas valides');
      return strftime ('%d-%m-%Y', strtotime ('last Saturday', $iDate));
}
try {
 echo getLastWeekEnd ('2006', '10');
} catch ( Exception $e ) {
   die (e->getMessage());
}
?>

;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
13 oct. 2006 à 09:16
Heu oui renvoyer une exception dans la fonction était stupide, je l'admets : je suis allé un peu vite ;-)
Je corrigerai le snippet.
0
aquewel Messages postés 143 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 juin 2010
23 oct. 2006 à 23:05
ok mais si c'est pas un samedi le dernier jour ???? et si c'etait lundi ?

<?php

functiongetLastWeekEnd2
($sYear
,$sMonth
,$lastjour
)
{
$lastjour2
=
( $lastjour
==
7)
?
0
: $lastjour
;
$in
=
array( 'Sunday'
,'Monday'
,'Tuesday'
,'Wednesday'
,'Thursday'
,'Friday'
,'Saturday'
);
$iDate
=
@ mktime
(0,0,0,
(int)$sMonth
+
1,
1,
(int)$sYear
);

if
(-1
===$iDate
)
{
trigger_error
('L\'année ou/et le mois donnés ne sont pas valides'
,E_USER_ERROR
);

}

returnstrftime
('%d-%m-%Y'
,strtotime
('last '
.$in
[$lastjour2
],$iDate
));

}

echogetLastWeekEnd2
('2006'
,'10'
,'3'
);

?>

Ca me parait pas mal non ????
 
0
Rejoignez-nous