Aller au contenu

calendrier + dates importantes


pandrekano

Sujets conseillés

Bonjour à tous,

J'ai un site avec un calendrier sur la page d'accueil. C'est celui du cours de Aki avara et Nicoco_40 sur le site du zéro "faire un calendrier comme le site du zero". Tout va très bien, mais je voudrais savoir comment fait-on pour que les jours dans un array puissent devenir colorés (avec le CSS) ?

est-ce que quelqu'un pourrait m'aider

merci d'avance

La page d'exemple avec un calendrier et des jours colorés et 2, en-dessous le calendrier sur lequel je travaille:

http://ppzx.net/rv/ad.php5

Maintenant, voici les codes de l'array et du calendrier

1- l'array

$d_importantes = array('13_10_2008', 
'24_10_2008',
'28_10_2008');

2- Le calendrier :Code : PHP

<?php 
$tsQuebec = time() - (6*60*60); // = 6 heures = 6 x 60 x 60 secondes
// Enregistrons les informations de date dans des variables
$jour = date('d',$tsQuebec);
$mois = date('m',$tsQuebec);
$annee = date('Y',$tsQuebec);
$heure = date('H',$tsQuebec);
$minute = date('i',$tsQuebec);
?>
<?php
// Si on ne récupère rien dans l'url, on prends la date du jour
if(!$_GET['m'] && !$_GET['y']) $timestamp = mktime(0, 0, 0, date('m',$tsQuebec), 1, date('Y'));
// Sinon on récupère la date donnée
else $timestamp = mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);

// === Si le mois correspond au mois actuel et l'année aussi, on retient le jour actuel pour le griser plus tard (sinon le jour actuel ne se situe pas dans le mois)
if(date('m', $timestamp) == date('m',$tsQuebec) && date('Y', $timestamp) == date('Y')) $coloreNum = date('d',$tsQuebec);

$m = array("01" => "Janvier", "02" => "Février", "03" => "Mars", "04" => "Avril", "05" => "Mai", "06" => "Juin", "07" => "Juillet", "08" => "Août", "09" => "Septembre", "10" => "Octobre", "11" => "Novembre", "12" => "Décembre");
$j = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
$d_importantes = array('13_2_2008',
'24_2_2008',
'28_12_2008');

$numero_mois = date('m', $timestamp);
$annee = date('Y', $timestamp);

if($numero_mois == 12) {
$annee_avant = $annee;
$annee_apres = $annee + 1;
$mois_avant = $numero_mois - 1;
$mois_apres = 01;
}
elseif($numero_mois == 01) {
$annee_avant = $annee - 1;
$annee_apres = $annee;
$mois_avant = 12;
$mois_apres = $numero_mois + 1;
}
else {
$annee_avant = $annee;
$annee_apres = $annee;
$mois_avant = $numero_mois - 1;
$mois_apres = $numero_mois + 1;
}

// 0 => Dimanche, 1 => Lundi, 2 = > Mardi...
$numero_jour1er = date('w', $timestamp);


// Changement du numéro du jour car l'array commence à l'indice 0
if ($numero_jour1er == 0) $numero_jour1er = 6; // Si c'est Dimanche, on le place en 6ème position (après samedi)
else $numero_jour1er--; // Sinon on mets lundi à 0, Mardi à 1, Mercredi à 2...
?>
<table>
<caption><?php echo '<a href="?m='.$mois_avant.'&y='.$annee_avant.'"><<</a> '.$m[$numero_mois].' '.$annee.' <a href="?m='.$mois_apres.'&y='.$annee_apres.'">>></a>'; ?></caption>
<tr><th>Lu</th><th>Ma</th><th>Me</th><th>Je</th><th>Ve</th><th>Sa</th><th>Di</th></tr>
<?php
// Ecriture de la 1ère ligne
echo '<tr>';
// Ecriture de colones vides tant que le mois ne démarre pas
for($i = 0; $i < $numero_jour1er; $i++) { echo '<td></td>'; }
for($i = 1; $i <= 7 - $numero_jour1er; $i++) {
echo '<td><div class="';
if(isset($coloreNum) && $coloreNum == $i) echo 'lienCalendrierJour">';
else echo 'lienCalendrier">';
echo $i.'</div></td>';
}
echo '</tr>';

$nbLignes = ceil((date('t', $timestamp) - ($i-1))/ 7); // Calcul du nombre de lignes à afficher en fonction de la 1ère (surtout pour les mois a 31 jours)

for($ligne = 0; $ligne < $nbLignes; $ligne++) {
echo '<tr>';
for($colone = 0; $colone < 7; $colone++) {
if($i <= date('t', $timestamp)) {
echo '<td><div class="';
if(isset($coloreNum) && $coloreNum == $i) echo 'lienCalendrierJour">';
else echo 'lienCalendrier">';
echo $i.'</div></td>';
if(in_array($timestamp_jour, $d_important)) echo '$d_important">';
}
else {
echo '<td></td>';
}
$i = $i +1;
}
echo '</tr>';
}
?>

</table>

</body>
</html>

Si quelqu'un veut bien m'aider, j'en serais très heureux.

Amitiés, pandrekano

Modifié par pandrekano
Merci d'utiliser codebox pour plus de 10 lignes de code :)
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

Bonjour à tous,

Mon sujet est maintenant résolu avec l'aide d'un modérateur du forum d'Alsacréations

Voici les modifications si ça intéresse quelqu'un :

<tbody>

<tr>

<th>Lu</th>

<th>Ma</th>

<th>Me</th>

<th>Je</th>

<th>Ve</th>

<th>Sa</th>

<th>Di</th>

</tr>

[...]

for ($i = 0; $i <= 6; $i++)

for($i = 1 ; $i <= 7 - $numero_jour1er; $i++) :

Mille excuses, mais je ne me rappelle plus comment on ajoute Résolu.

Amitiés, pandrekano

Lien vers le commentaire
Partager sur d’autres sites

Mille excuses, mais je ne me rappelle plus comment on ajoute Résolu.
Sur Alscréations, c'est très important d'ajouter "Résolu" entre crochets dans le titre de la discussion.

Sur le Hub, c'est différent: on n'en veut surtout pas. ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...