Calendrier sur une semaine

SataN_sTn Messages postés 12 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 27 avril 2007 - 22 avril 2007 à 22:47
SataN_sTn Messages postés 12 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 27 avril 2007 - 23 avril 2007 à 14:45
Bonjour,

Travaillant sur un calendrier sur une semaine qui reprendre des données dans une base mysql suivant les jours, heures etc, j'ai donc cherché les débuts d'un script sur un calendrier sur une semaine, je pensais avoir fini, mais malheureusement aujourd'hui il m'ai arrivé un probleme.

Nous somme donc encore en semaine du 16 au 22 et que fut ma surprise aujourd'hui dimanche 22 quand je voulu continuer a travailler dessus, le calendrier n'affiché plus la semaine en cours, mais la semaine prochaine celle du 23 au 29, apres avoir cherché et réfléchi toute la journée dessus, je me décide enfin de venir poser ma question ici.

Quelqu'un aurait la solution a ce probleme ? Pourquoi il y a un décalage de 24h...


<hr />
<?php
if( ! isset( $_GET['lundi'] ) ) $_GET['lundi'] = '';
$lundi = $_GET['lundi'];

if ($lundi == '')
{
$lundi = mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y"));
}
$mardi $lundi + 86400; //86400 secondes 1 jour (24h)
$mercredi = $mardi + 86400;
$jeudi = $mercredi + 86400;
$vendredi = $jeudi + 86400;
$samedi = $vendredi + 86400;
$dimanche = $samedi + 86400;

//découpage de la date du Lundi de la semaine en cours à partir du timestamp
$jourlundi = date("d", $lundi);
$moislundi = date("m", $lundi);
$anneelundi = date("Y", $lundi);

//découpage de la date du dimanche de la semaine en cours à partir du timestamp
$jourdimanche  = date("d", $dimanche );
$moisdimanche  = date("m", $dimanche );
$anneedimanche  = date("Y", $dimanche );

//calcul du timestamp du lundi et dimanche de la semaine prochaine
$lundidernier  = $lundi - 604800;

//calcul du timestamp du lundi et dimanche de la semaine prochaine
$lundiprochain  = $lundi + 604800;

echo "&lt;&lt; ";
echo "Semaine du ".$jourlundi."/".$moislundi."/".$anneelundi." au ".$jourdimanche."/".$moisdimanche."/".$anneedimanche;
echo " &gt;&gt;";
?>

<hr />Voilà, et désolé si y'a un probleme de lecture du code, mais ca aurait été mieux dans un quote :/

Merci

Cordialement,

4 réponses

cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
23 avril 2007 à 13:55
Cordialement.

JC
0
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
23 avril 2007 à 14:00
Bonjour,

Super l'éditeur.

Ceci :
$lundi = mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y"));
ne peut pas fonctionner. Les jours sont numérotés de 0 (dimanche) à 6 (samedi).
Si tu fait ce calcul un dimanche (hier) :
date("d")-date("w")+1
ça équivaut à
22 - 0 + 1 = 23

Donc, tu dois tester le N° du jour. Tu peux faire un truc dans ce genre :

$timestampAujourdhui = strtotime(date('Y-m-d'));
$jour = date('w', $timestampAujourdhui);
$lundi (($jour 0) || ($jour > 1)) ?
date('Y-m-d', strtotime('last monday', $timestampAujourdhui)) :
date('Y-m-d', $timestampAujourdhui);
0
SataN_sTn Messages postés 12 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 27 avril 2007
23 avril 2007 à 14:32
D'accord, je vais tester ca et je te retiens au courant.
Merci
0
SataN_sTn Messages postés 12 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 27 avril 2007
23 avril 2007 à 14:45
Donc je viens d'essayer, ca fonctionne, mais pas vraiment dans le script que j'utilise ou alors j'ai mal fais, mais on m'as donné une autre solution que j'ai essayé et qui fonctionne "pour le moment".

<?php 
//... 
$nbAoter = date("w")-1; 
if($nbAoter<0) $nbAoter=6; 
$lundi = mktime(0,0,0,date("m"),date("d")-$nbAoter,date("Y")); 
//... 
?>


Alors avec ca, quand on est dimanche de la semaine 1 ca affichera la semaine 1 et pus la semaine 2. Mais le gars m'a dis que j'aurais des problemes avec le changement d'heure sur le autre jours, a tester.

Mais merci pour ton aide.
0
Rejoignez-nous