Il y a peut-être moyen de faire un truc super dynamique tout propre, mais comme il n'y a pas des milliers de cas de figure tu peux bien te faire une petite fonction perso, en t'aidant du tableau de cette page :
http://fr.wikipedia.org/wiki/Semaine_1
Ce qui donnerait si je ne me suis pas gouré :
<?php
function premierJourDeLannee($annee=2010) {
$tabLibellesJours = Array(0=>'dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi');
$premierJanvier = date("w", mktime(0, 0, 0, 1, 1, $annee));
$timePremierJour = null;
switch ($premierJanvier) {
case 4: // jeudi
$timePremierJour = mktime(0, 0, 0, 12, 29, $annee-1);
break;
case 3: // mercredi
$timePremierJour = mktime(0, 0, 0, 12,30, $annee-1);
break;
case 2: // mardi
$timePremierJour = mktime(0, 0, 0, 12, 31, $annee-1);
break;
case 1: // lundi
$timePremierJour = mktime(0, 0, 0, 1, 1, $annee); // premier janvier = premier jour de l'année
break;
case 0: // dimanche
$timePremierJour = mktime(0, 0, 0, 1, 2, $annee);
break;
case 6: // samedi
$timePremierJour = mktime(0, 0, 0, 1, 3, $annee);
break;
case 5: // vendredi
$timePremierJour = mktime(0, 0, 0, 1, 4, $annee);
break;
}
$datePremierJour = date("d/m/Y", $timePremierJour);
echo 'Le 1er janvier '.$annee.' est un '.$tabLibellesJours[$premierJanvier].', le premier jour de la première semaine de l\'année est donc le lundi '.$datePremierJour.'.';
}
for($i=2000;$i<=2012;$i++) {
premierJourDeLannee($i);
echo '<br /><br />';
}
?>
Le 1er janvier 2000 est un samedi, le premier jour de la première semaine de l'année est donc le lundi 03/01/2000.
Le 1er janvier 2001 est un lundi, le premier jour de la première semaine de l'année est donc le lundi 01/01/2001.
Le 1er janvier 2002 est un mardi, le premier jour de la première semaine de l'année est donc le lundi 31/12/2001.
Le 1er janvier 2003 est un mercredi, le premier jour de la première semaine de l'année est donc le lundi 30/12/2002.
Le 1er janvier 2004 est un jeudi, le premier jour de la première semaine de l'année est donc le lundi 29/12/2003.
Le 1er janvier 2005 est un samedi, le premier jour de la première semaine de l'année est donc le lundi 03/01/2005.
Le 1er janvier 2006 est un dimanche, le premier jour de la première semaine de l'année est donc le lundi 02/01/2006.
Le 1er janvier 2007 est un lundi, le premier jour de la première semaine de l'année est donc le lundi 01/01/2007.
Le 1er janvier 2008 est un mardi, le premier jour de la première semaine de l'année est donc le lundi 31/12/2007.
Le 1er janvier 2009 est un jeudi, le premier jour de la première semaine de l'année est donc le lundi 29/12/2008.
Le 1er janvier 2010 est un vendredi, le premier jour de la première semaine de l'année est donc le lundi 04/01/2010.
Le 1er janvier 2011 est un samedi, le premier jour de la première semaine de l'année est donc le lundi 03/01/2011.
Le 1er janvier 2012 est un dimanche, le premier jour de la première semaine de l'année est donc le lundi 02/01/2012.
A vérifier toute de même
Mais je pense que ça a déjà dû être fait... au moins dans un framework quelconque