Jump to content
Sign in to follow this  
pandrekano

calendrier + dates importantes

Rate this topic

Recommended Posts

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

Edited by pandrekano
Merci d'utiliser codebox pour plus de 10 lignes de code :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other 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. ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...