[PHP] Jours de la semaine grâce à son numéro
Fermé
Arkha
-
le père -
le père -
Bonjour,
Question probablement toute bête, mais après plusieurs recherches, je n'ai toujours pas trouver...
Je voudrais stocker la liste des jours d'une semaine, grâce à son numéro de semaine...
Exemple:
$array_jours_semaine = semaine(45); //pour lister les jours de la semaine 45
J'ai fait des recherches avec les fonctions de de date php, mais j'avoue que j'ai un peu de mal en ce qui concerne les dates...
Merci à ceux qui pourront essayer de m'éclairer un peu =)
Question probablement toute bête, mais après plusieurs recherches, je n'ai toujours pas trouver...
Je voudrais stocker la liste des jours d'une semaine, grâce à son numéro de semaine...
Exemple:
$array_jours_semaine = semaine(45); //pour lister les jours de la semaine 45
J'ai fait des recherches avec les fonctions de de date php, mais j'avoue que j'ai un peu de mal en ce qui concerne les dates...
Merci à ceux qui pourront essayer de m'éclairer un peu =)
A voir également:
- Php jour de la semaine
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
- Comment mettre à jour ses pilotes - Guide
- Le jour de ma naissance gratuit - Télécharger - Histoire & Religion
3 réponses
Salut, tard sans doute j'arrive, j'aurai eu mieux encore et plus léger :
Tu peux également utiliser le paramètre 'N', pour connaître le numéro du jour (1 pour lundi, à 7 pour dimanche). Il suffit ensuite d'associer ce numéro à une entrée d'un array, et le tour est joué.
Voilà c'est ALL ;)
Tu peux également utiliser le paramètre 'N', pour connaître le numéro du jour (1 pour lundi, à 7 pour dimanche). Il suffit ensuite d'associer ce numéro à une entrée d'un array, et le tour est joué.
<?php
$tab_jour = array(1 => 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');
$num_jour = date('N');
$nom_jour = $tab_jour[$num_jour];
?>
// ...
// ...
// un peu plus loin dans ton code pour demander l'affichage ...
echo $nom_jour;
Voilà c'est ALL ;)
Je t'ai concocté ça:
<?php
//fonction calcul
function get_lundi_dimanche_from_week($sem,$an) {
//timestamp du premier janvier de l'annee demandee
$timestamp01janv=mktime(0,0,0,01,01,$an);
//numero du jour du premier janvier
$num_jour_01janv=date("w",$timestamp01janv);
//timestamp du lundi precedent le premier janvier (=debut de la semine 1)
$timestamp_lundi_sem01=$timestamp01janv - (($num_jour_01janv - 1)*24*3600);
//pour trouver la date du lundi de la semaine cherchée
$timestamp_lundi_sem_n=$timestamp_lundi_sem01 + (($sem-1)*7*24*3600);
$array_jours_sem_n['lundi']=$timestamp_lundi_sem_n;
$array_jours_sem_n['mardi']=$timestamp_lundi_sem_n + (24*3600);
$array_jours_sem_n['mercredi']=$timestamp_lundi_sem_n + (2*24*3600);
$array_jours_sem_n['jeudi']=$timestamp_lundi_sem_n + (3*24*3600);
$array_jours_sem_n['vendredi']=$timestamp_lundi_sem_n + (4*24*3600);
$array_jours_sem_n['samedi']=$timestamp_lundi_sem_n + (5*24*3600);
$array_jours_sem_n['dimanche']=$timestamp_lundi_sem_n + (6*24*3600);
return $array_jours_sem_n;
}
?>
<form name="form1" method="post" action="">
Numero de semaine:<input type="text" name="semaine" value=""><br />
Année:
<select name="annee">
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select>
<br />
<br />
<br />
<input type="submit" name="calculer" value="Calculer">
</form>
<?php
if(isset($_POST['calculer'])){
$semaine=$_POST['semaine'];
if($semaine !=""){
$annee=$_POST['annee'];
$array_sem = get_lundi_dimanche_from_week($semaine,$annee);
if(sizeof($array_sem)>0){
foreach($array_sem as $cle => $value){
echo $cle." ".date("d/m/Y",$value)."<br />";
}
}
}else{ echo "Veuillez saisir un numéro de semaine !";}
}
?>
Ce script suppose que la semaine 1 commence le lundi qui précède le 1er janvier. C'est faux.
La numérotation ISO des semaines appelle semaine 1 la semaine du premier jeudi de l'année
http://fr.wikipedia.org/wiki/Num%C3%A9rotation_ISO_des_semaines
La solution de davekgnight est plus simple et évite de réinventer la roue. C'est à lui qu'il faut mettre un +
La numérotation ISO des semaines appelle semaine 1 la semaine du premier jeudi de l'année
http://fr.wikipedia.org/wiki/Num%C3%A9rotation_ISO_des_semaines
La solution de davekgnight est plus simple et évite de réinventer la roue. C'est à lui qu'il faut mettre un +