Achetez et vendez votre matériel multimédia d'occasion sur notre service de petites annonces informatiques gratuites

Calendrier php

<<<1>>>

[Page 1 sur 1 - 5 messages]
Informations Messages

Lily59

Avatar de Lily59
27 messages
Barrette de RAM
Barrette de RAM

Lien direct Le 22 Novembre 2010 à 18h52

Bonjour,
je dois faire un calendrier en php mais je n'y arrive pas.

echo"<table>";



//+++++++++++++++Ligne1+++++++++++++
echo "<tr>";
echo"<th>Lundi</th>" ;
echo"<th>Mardi</th>" ;
echo"<th>Mercredi</th>" ;
echo"<th>Jeudi</th>" ;
echo"<th>Vendredi</th>" ;
echo"<th>Samedi</th>" ;
echo"<th>Dimanche</th>" ;
echo " </tr>";

// ++++++++++Autres lignes++++++++++
$an=date('Y');
$mois=date('n');
$jour=date('d');
$aa=mktime(0,0,0,$mois,1,$an);

$jencour=mktime( 0, 0, 0, $mois, $jour, $an );
$pjourdumois=date('n',$aa);
$nbjour=date('t',$aa);


// echo "----------------".date('t',$nbjour)."<br>"; //nombre jour dans mois
//echo "----------------".date('',$nbjour)."<br>";

// if($jencour=1 && $pjourdumois=1 )
// {
// echo "<tr>";
// echo"<th>1<th>" ;
// echo"<th></th>" ;
// echo"<th></th>" ;
// echo"<th></th>" ;
// echo"<th></th>" ;
// echo"<th></th>" ;
// echo"<th></th>" ;
// echo " </tr>";
// }

for($i=0;$i<40;$i++){

if($jour == date("d") && $mois == date("n")){
echo "<td class=\"aujourdhui\">$jour</td>";
}else{
echo "<td class=\"jours\">$jour</td>";
}
$jour++;


if($jour > $nbjour){
while($i % 7 != 0){
echo "<td class=\"cases_vides\">$jourmoissuivant</td>";
$i++;
$jourmoissuivant++;
}
echo "</tr></table>";
$i=41;
}


if($i % 7 == 0){
echo "</tr><tr>";
}

}

echo"</table>";



Là j'essaie juste d'afficher le calendrier du mois en cour.
d'où vient le probleme?
merci

 

blett44

Avatar de blett44
1042 messages
PC de Compèt'
PC de Compèt'
AidoWindows
AidoWindows

Lien direct Le 23 Novembre 2010 à 11h21

salut je ne connais vraiment pas grand chose dans le php mais regarde CELA cela pourras peut-être t'aider à résoudre ton problème de calendrier
tien moi au courant si tu veux

On ne m'enlèvera pas de l'idée que la connerie est une forme d'intelligence. De Michel Colucci, dit Coluche
 

ju2cho7

Avatar de ju2cho7
7322 messages
No-Life
No-Life
AidoCodeur
AidoCodeur
Modérateur
Modérateur

Lien direct Le 23 Novembre 2010 à 19h15

Tu n'es pas sûr que ton $aa soit un lundi, donc qu'il corresponde à la première colonne.
Fais plutôt:


$an = date("Y");
$mois = date("n");
$jour = date("d");

echo "<table>";
echo "<tr>";
echo"<th>Lundi</th>" ;
echo"<th>Mardi</th>" ;
echo"<th>Mercredi</th>" ;
echo"<th>Jeudi</th>" ;
echo"<th>Vendredi</th>" ;
echo"<th>Samedi</th>" ;
echo"<th>Dimanche</th>" ;
echo " </tr>";
echo " <tr>";

$start = mktime(0,0,0,$mois,1,$an); //On sélectionne le 1° du mois
$start -= (date("N", $start)-1)*86400; //On retire N-1 jours pour tomber un lundi (ex: si le 1° du mois est un mardi=2, on retire N-1=1 jour pour tomber le lundi)

$end = mktime(0,0,0,$mois+1,1,$an) - 86400; //On cherche le dernier jour du mois
$end += (7-date("N",$end))*86400; //On décale la fin du calendrier jusqu'à la fin de la semaine

$cur = $start;
while( $cur <= $end ) {
if ( date("N", $cur) == 1 and $cur != $start) {
//On change de ligne à chaque lundi
echo "</tr>\n";
echo "<tr>\n";
}

$style = "";
if ( $cur == strtotime("$an-$mois-$jour") ) {
//On colore la case en vert si c'est le jour courant
$style = " style=\"background-color: #009933;\"";
}
echo "<td$style>";
if ( date("n",$cur) == $mois ) {
//On affiche seulement les jours du mois en cours
echo date("d", $cur);
}
echo "</td>\n";

$cur += 86400;
}
echo "</tr>\n";
echo "</table>";



Je n'ai pas compris pourquoi tu fais un for de 0 à 39 par contre...

Nous ne fournissons pas d'aide par MP. ;)
 

Lily59

Avatar de Lily59
27 messages
Barrette de RAM
Barrette de RAM

Lien direct Le 23 Novembre 2010 à 20h02

En faite je voulais utiliser un for et comme il y a au maximum 31 jours, j'ai dit je vais mettre plus mais bon, un for je vais devoir l'utilisé pour les variables dans le lien. pour faire les autre mois, avec des get

for($i=1; $i<=12; $i++)
{
echo "<a href='index.php?de=$i'> Mois $i </a> <br />";

}

echo "<br /><form method='post' action='table.php?de=$i'>";



//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(isset($_GET["de"]))
{
$v_de=$_GET["de"];

}



J'ai fait sa mais je vois pas comment le lier avec les mois, il faut que je change mon $i en $mois?

 

ju2cho7

Avatar de ju2cho7
7322 messages
No-Life
No-Life
AidoCodeur
AidoCodeur
Modérateur
Modérateur

Lien direct Le 03 Décembre 2010 à 15h04

Pourquoi ne pas plus simplement afficher deux liens: Mois précédent / Mois suivant ?
Si tu mets les liens vers chaque mois, tu vas être limité à ton année en cours.

Ton formulaire doit récupérer quoi ?

Nous ne fournissons pas d'aide par MP. ;)
 

<<<1>>>

[Page 1 sur 1 - 5 messages]