1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
function getNumeroSemaine($mktime) {
$semaine1erJan = date( 'W', mktime (0, 0, 0, 1, 1, date('Y', $mktime)) );
$jour1erJan = date( 'w', mktime (0, 0, 0, 1, 1, date('Y', $mktime)) );
//cas particulier : le 1er janvier de l'année est un lundi.
if ($jour1erJan == 1) return date('W', $mktime);
//Le 1er janvier est en semaine 1
if ($semaine1erJan == 1) {
$semaine = date('W', $mktime);
//cas particulier : le 1er janvier est en semaine 1 et la date cherchée est en semaine 1
if ($semaine == 1)
return date( 'W', mktime (0, 0, 0, 12, 31, date('Y', $mktime) -1) );
else
return $semaine -1;
}
//Le 1er janvier n'est pas en semaine 1.
else {
return date('W', $mktime);
}
}
//Le 30 octobre 2008 (le 1er janvier est un mardi)
echo getNumeroSemaine(mktime (0, 0, 0, 10, 30, '2008')) . '<br />'; //43
//Le 3 janvier 2008 (le 1er janvier est un mardi)
echo getNumeroSemaine(mktime (0, 0, 0, 1, 3, '2008')) . '<br />'; //01
//Le 25 janvier 2007 (cas du lundi 1er janvier)
echo getNumeroSemaine(mktime (0, 0, 0, 1, 25, '2007')) . '<br />'; //04
//Le 25 janvier 2006 (le 1er janvier est un dimanche)
echo getNumeroSemaine(mktime (0, 0, 0, 1, 25, '2006')) . '<br />'; //04
?> |
Partager