Premier semaine de l'annee
tigre198
Messages postés
55
Statut
Membre
-
tigre198 Messages postés 55 Statut Membre -
tigre198 Messages postés 55 Statut Membre -
Bonjour,
j'ai vu manuel de php pour fonctions comme strtotime ou mk time mais y'a probleme que j'ai pas pu résoudre
en fete je cherche comment afficher premier lundi de l'annee
mais bien sur par exemple annee 2008 la premiere semaine comence par (31-12-2007-)
vu que c'est lundi
j'ai trouvé ce script mais il résoud pas mon probelme
function week_dates($week,$year) {
$week_dates = array();
// Get timestamp of first week of the year
$first_day = mktime(12,0,0,1,1,$year);
$first_week = date("W",$first_day);
if ($first_week > 1) {
$first_day = strtotime("+1 week",$first_day); // skip to next if year does not begin with week 1
}
// Get timestamp of the week
$timestamp = strtotime("+$week week",$first_day);
// Adjust to Monday of that week
$what_day = date("w",$timestamp); // I wanted to do "N" but only version 4.3.9 is installed :-(
if ($what_day==0) {
// actually Sunday, last day of the week. FIX;
$timestamp = strtotime("-6 days",$timestamp);
} elseif ($what_day > 1) {
$what_day--;
$timestamp = strtotime("-$what_day days",$timestamp);
}
$week_dates[1] = date("Y-m-d",$timestamp); // Monday
$week_dates[2] = date("Y-m-d",strtotime("+1 day",$timestamp)); // Tuesday
$week_dates[3] = date("Y-m-d",strtotime("+2 day",$timestamp)); // Wednesday
$week_dates[4] = date("Y-m-d",strtotime("+3 day",$timestamp)); // Thursday
$week_dates[5] = date("Y-m-d",strtotime("+4 day",$timestamp)); // Friday
$week_dates[6] = date("Y-m-d",strtotime("+5 day",$timestamp)); // Saturday
$week_dates[7] = date("Y-m-d",strtotime("+6 day",$timestamp)); // Sunday
return($week_dates);
}
merçi d'avance
j'ai vu manuel de php pour fonctions comme strtotime ou mk time mais y'a probleme que j'ai pas pu résoudre
en fete je cherche comment afficher premier lundi de l'annee
mais bien sur par exemple annee 2008 la premiere semaine comence par (31-12-2007-)
vu que c'est lundi
j'ai trouvé ce script mais il résoud pas mon probelme
function week_dates($week,$year) {
$week_dates = array();
// Get timestamp of first week of the year
$first_day = mktime(12,0,0,1,1,$year);
$first_week = date("W",$first_day);
if ($first_week > 1) {
$first_day = strtotime("+1 week",$first_day); // skip to next if year does not begin with week 1
}
// Get timestamp of the week
$timestamp = strtotime("+$week week",$first_day);
// Adjust to Monday of that week
$what_day = date("w",$timestamp); // I wanted to do "N" but only version 4.3.9 is installed :-(
if ($what_day==0) {
// actually Sunday, last day of the week. FIX;
$timestamp = strtotime("-6 days",$timestamp);
} elseif ($what_day > 1) {
$what_day--;
$timestamp = strtotime("-$what_day days",$timestamp);
}
$week_dates[1] = date("Y-m-d",$timestamp); // Monday
$week_dates[2] = date("Y-m-d",strtotime("+1 day",$timestamp)); // Tuesday
$week_dates[3] = date("Y-m-d",strtotime("+2 day",$timestamp)); // Wednesday
$week_dates[4] = date("Y-m-d",strtotime("+3 day",$timestamp)); // Thursday
$week_dates[5] = date("Y-m-d",strtotime("+4 day",$timestamp)); // Friday
$week_dates[6] = date("Y-m-d",strtotime("+5 day",$timestamp)); // Saturday
$week_dates[7] = date("Y-m-d",strtotime("+6 day",$timestamp)); // Sunday
return($week_dates);
}
merçi d'avance
A voir également:
- Premier semaine de l'annee
- 1 million de seconde en année - Accueil - Technologies
- Chanteur blond année 80 ✓ - Forum Musique / Radio / Clip
- Chanson i love you année 70 ✓ - Forum Musique / Radio / Clip
- Pourquoi certaines personnes apparaissent en premier sur messenger ✓ - Forum Facebook
- Chanteur blond, cheveux longs anglophone - Forum Musique / Radio / Clip
2 réponses
Bonjour.
Si je comprends bien, tu veux juste afficher le premier lundi de l'année ?
Dans ce cas (exemple de code, certainement optimisable...) :
Si je comprends bien, tu veux juste afficher le premier lundi de l'année ?
Dans ce cas (exemple de code, certainement optimisable...) :
function premierLundi($an) {
/*
Définition des "constantes" :
$jour => Nombre de secondes dans une journée (le TimeStamp est un nombre de secondes)
$semaine => Tableau associatif qui fait correspondre au jour de la semaine le nombre de jour à rajouter pour arriver au lundi
(C'est pour ça qu'il est "à l'envers"
*/
$jour=60*60*24;
$semaine = array ('Mon'=>0,'Sun'=>1,'Sat'=>2,'Fri'=>3,'Thu'=>4,'Wed'=>5,'Tue'=>6);
// On récupère le TimeStamp correspondant au premier janvier de l'année
$ts = mktime(0,0,0,1,1,$an);
// $premier = Le jour de la semaine correspondant au premier janvier.
$premier = date("D", $ts);
/* $premier_lundi = Le premier lundi de l'année.
Méthode de calcul :
On a le TS du premier janvier.
On va chercher dans le tableau $semaine le nombre de jours à rajouter pour arriver à lundi
pour 2008, le 01/01/2008 est un mardi (Tue), on devra donc rajouter 6 jours = $semaine['Tue']
Pour rajouter le nombr ede jours nécessaires, on rajoute au TimeStamp du premier janvier le nombre de jours donné par $semaine multiplié par le nombre de secondes dans un jour ($jour).
*/
$prem_lundi = $semaine[$premier]*$jour+$ts;
// On retourne le TimeStamp correspondant au premier lundi de l'année.
return $prem_lundi;
}
merçi pour ta réponse
mais la je croix pas ça va marcher . et la je croix c'est ma faute car j'ai mal expliqué
si tu vérifie calendrier dans les entreprises la premire semaine de 2008 commence en 31-01-2007 et pas 01-01-2008
et la j'ai besoin d'voir le lundi de 31-12-2007 pour que je c onsidere comme premier lundi de 2008
et bien sur chaque annee a ses carcteristiques
par exemple annee 2009 si tu voix calendrier semaine 1 comence lundi 29-01-2008
j'espere que t'a compris probleme
sinon je vais esayer de voir ta fonction pour voir si je peux adapter sinon elle marche et y'a pas erreur
merçi comme meme
mais la je croix pas ça va marcher . et la je croix c'est ma faute car j'ai mal expliqué
si tu vérifie calendrier dans les entreprises la premire semaine de 2008 commence en 31-01-2007 et pas 01-01-2008
et la j'ai besoin d'voir le lundi de 31-12-2007 pour que je c onsidere comme premier lundi de 2008
et bien sur chaque annee a ses carcteristiques
par exemple annee 2009 si tu voix calendrier semaine 1 comence lundi 29-01-2008
j'espere que t'a compris probleme
sinon je vais esayer de voir ta fonction pour voir si je peux adapter sinon elle marche et y'a pas erreur
merçi comme meme