Planning php gestion des dates

Résolu
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -  
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis en stage, et je désire faire un planning mensuel pour plusieurs salarié. J'ai fait le tableau en statique cela me parait plutôt bien. Simplement pour simplifié, et aussi augmenter la durée de vie de mon application je souhaiterais que les dates s'affectent à des jours automatiquement.

Par exemple si je choisis le moi de janvier 2022 je voudrai qu'il me donne les dates du 1er au 31 janviers (ça pas trop compliqué) mais en plus que dans la case d'accoter il me donne le bon jour correspondant.

Y a t il un moyen simple de faire cela ?
A voir également:

70 réponses

shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
Merci ^^ désolé pour le boulet que je suis mais n'étant quand première année de BTS les erreures de tout type sont nombreuse et je bute le plus de temps sur des erreurs d'étourderies souvent.
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Pas grave, c'est des erreurs que tu continueras de faire toute ta vie ;-)
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
Bon bah c'est le moment du week-end pas sur que je puisse bosser sur le projet ce week-end. J'espere que vous pourrez me venir en aide si besoin dès lundi.

Et encore une fois merci beaucoup !
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
A lundi oui ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
C'est encore moi, voilà j'ai un petit soucis qui n'est pas une erreur. Dans le lien du tuto que m'a passé jeremy.s la personne obtient 12 x les jours de la semaines dans son exemple (24 :07 min de la video) or avec mon code je ne l'obtient que deux fois, je doute que cela soit normal et je n'arrive pas à voir ce qui cloche.
Est ce que cela proviendrai du fait que moi je doit le faire en procedural et que lui le fait en objet ? Aurais-je oublier une chose que je doit faire en plus ?

Voici mes codes :

index :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Csc : Plannings</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<body>

<?php
require('date.php');
$date = new Date();
$year = ('2011');
$dates = $date->getAll($year);
?>
<div class="periods">
<div class="year"><?php echo $year; ?></div>
<div class="months">
<ul>
<?php foreach ($date->months as $id=>$m): ?>
<li><a href="#" id="linkMonth<?php echo $id+1; ?>"><?php echo $m; ?></a></li>
<?php endforeach; ?>
</ul>
</div>
<?php $dates = current($dates); ?>
<?php foreach ($date as $m=>$days): ?>
<div class="month" id"month<?php echo $m; ?>">
<table>
<thead>
<tr>
<?php foreach ($date->days as $d): ?>
<th><?php echo substr($d,0,3) ?></th>
<?php endforeach; ?>
</tr>
</thead>
</table>
</div>
<?php endforeach; ?>
</div>
<pre>
<?php print_r($dates); ?>
</pre>

</body>
</html>


date.php :
<?php
class Date{

var $days = array('Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'samedi', 'Dimanche');
var $months = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');

function getAll($year){

$r = array();

$date = strtotime($year.'-01-01');

while(date("Y",$date) <= $year){
//ce que je veux => $r [ANNEE][MOIS][JOUR] = JOUR DE LA SEMAINE
$y = date('Y', $date);
$m = date('n',$date);
$d = date('j',$date);
$w = str_replace("0","7",date('w',$date));
$r[$y][$m][$d] = $w;
$date = strtotime(date('Y-m-d',$date).' +1 DAY');
}

/*$date = new dateTime($year.'-01-01');
while($date->format('Y')<= $year){
//ce que je veux => $r [ANNEE][MOIS][JOUR] = JOUR DE LA SEMAINE
$y = $date->format('Y');
$m = $date->format('n');
$d = $date->format('j');
$w = str_replace("0","7",$date->format('w'));
$r[$y][$m][$d] = $w;
$date->add(new dateInterval('P1D'));
}*/
return $r;
}
}
?>
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Salut !

Je t'avoue que je ne comprend pas ce que tu entends par "la personne obtient 12 x les jours de la semaines dans son exemple (24 :07 min de la video) or avec mon code je ne l'obtient que deux fois"
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
Alors comment être plus clair ^^

Disons que dans le tutoriel il obtient les mois, puis ensuite douze fois (soit un fois par mois à mon avis) "lundi mardi mercredi jeudi vendredi samedi dimanche".

Or moi je n'obtient que deux fois la chaîne "lundi mardi mercredi jeudi vendredi samedi dimanche".

Je ne pense pas que cela soit normal. Est-ce plus clair ?
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
En continuant le tuto, j'ai encore le même soucis mais avec les jours, C'est a dire que en dessous de ma premiere semaine j'ai les jours de 1 à 7. Et en dessous de la seconde les jours de 1 à 11. Alors que lui obtient les jours des 1 à 31 pour chacunes de ses "12 semaines"
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Ah le tableau associatif année, mois, jour => jour de la semaine
Il est pas pleins c'est ca ? Il correspont pas à une année pleinne ?
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
Si tu preferes lui il obtient :

Janvier
Fevrier
Mars
Avril
Mai
Juin
Juillet
Aout
Septembre
Octobre
Novembre
Décembre

Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche

Et moi j'obtient :



Janvier
Fevrier
Mars
Avril
Mai
Juin
Juillet
Aout
Septembre
Octobre
Novembre
Décembre

Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Et le <pre>print_r</pre> du tableau donne quoi ?
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
le <pre>print_r</pre> du tableau me donne ceci :

Array
(
[1] => Array
(
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 1
[8] => 2
[9] => 3
[10] => 4
[11] => 5
[12] => 6
[13] => 7
[14] => 1
[15] => 2
[16] => 3
[17] => 4
[18] => 5
[19] => 6
[20] => 7
[21] => 1
[22] => 2
[23] => 3
[24] => 4
[25] => 5
[26] => 6
[27] => 7
[28] => 1
[29] => 2
[30] => 3
[31] => 4
)

[2] => Array
(
[1] => 5
[2] => 6
[3] => 7
[4] => 1
[5] => 2
[6] => 3
[7] => 4
[8] => 5
[9] => 6
[10] => 7
[11] => 1
[12] => 2
[13] => 3
[14] => 4
[15] => 5
[16] => 6
[17] => 7
[18] => 1
[19] => 2
[20] => 3
[21] => 4
[22] => 5
[23] => 6
[24] => 7
[25] => 1
[26] => 2
[27] => 3
[28] => 4
)

[3] => Array
(
[1] => 5
[2] => 6
[3] => 7
[4] => 1
[5] => 2
[6] => 3
[7] => 4
[8] => 5
[9] => 6
[10] => 7
[11] => 1
[12] => 2
[13] => 3
[14] => 4
[15] => 5
[16] => 6
[17] => 7
[18] => 1
[19] => 2
[20] => 3
[21] => 4
[22] => 5
[23] => 6
[24] => 7
[25] => 1
[26] => 2
[27] => 3
[28] => 4
[29] => 5
[30] => 6
[31] => 7
)

[4] => Array
(
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 1
[9] => 2
[10] => 3
[11] => 4
[12] => 5
[13] => 6
[14] => 7
[15] => 1
[16] => 2
[17] => 3
[18] => 4
[19] => 5
[20] => 6
[21] => 7
[22] => 1
[23] => 2
[24] => 3
[25] => 4
[26] => 5
[27] => 6
[28] => 7
[29] => 1
[30] => 2
)

[5] => Array
(
[1] => 3
[2] => 4
[3] => 5
[4] => 6
[5] => 7
[6] => 1
[7] => 2
[8] => 3
[9] => 4
[10] => 5
[11] => 6
[12] => 7
[13] => 1
[14] => 2
[15] => 3
[16] => 4
[17] => 5
[18] => 6
[19] => 7
[20] => 1
[21] => 2
[22] => 3
[23] => 4
[24] => 5
[25] => 6
[26] => 7
[27] => 1
[28] => 2
[29] => 3
[30] => 4
[31] => 5
)

[6] => Array
(
[1] => 6
[2] => 7
[3] => 1
[4] => 2
[5] => 3
[6] => 4
[7] => 5
[8] => 6
[9] => 7
[10] => 1
[11] => 2
[12] => 3
[13] => 4
[14] => 5
[15] => 6
[16] => 7
[17] => 1
[18] => 2
[19] => 3
[20] => 4
[21] => 5
[22] => 6
[23] => 7
[24] => 1
[25] => 2
[26] => 3
[27] => 4
[28] => 5
[29] => 6
[30] => 7
)

[7] => Array
(
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 1
[9] => 2
[10] => 3
[11] => 4
[12] => 5
[13] => 6
[14] => 7
[15] => 1
[16] => 2
[17] => 3
[18] => 4
[19] => 5
[20] => 6
[21] => 7
[22] => 1
[23] => 2
[24] => 3
[25] => 4
[26] => 5
[27] => 6
[28] => 7
[29] => 1
[30] => 2
[31] => 3
)

[8] => Array
(
[1] => 4
[2] => 5
[3] => 6
[4] => 7
[5] => 1
[6] => 2
[7] => 3
[8] => 4
[9] => 5
[10] => 6
[11] => 7
[12] => 1
[13] => 2
[14] => 3
[15] => 4
[16] => 5
[17] => 6
[18] => 7
[19] => 1
[20] => 2
[21] => 3
[22] => 4
[23] => 5
[24] => 6
[25] => 7
[26] => 1
[27] => 2
[28] => 3
[29] => 4
[30] => 5
[31] => 6
)

[9] => Array
(
[1] => 7
[2] => 1
[3] => 2
[4] => 3
[5] => 4
[6] => 5
[7] => 6
[8] => 7
[9] => 1
[10] => 2
[11] => 3
[12] => 4
[13] => 5
[14] => 6
[15] => 7
[16] => 1
[17] => 2
[18] => 3
[19] => 4
[20] => 5
[21] => 6
[22] => 7
[23] => 1
[24] => 2
[25] => 3
[26] => 4
[27] => 5
[28] => 6
[29] => 7
[30] => 1
)

[10] => Array
(
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 1
[8] => 2
[9] => 3
[10] => 4
[11] => 5
[12] => 6
[13] => 7
[14] => 1
[15] => 2
[16] => 3
[17] => 4
[18] => 5
[19] => 6
[20] => 7
[21] => 1
[22] => 2
[23] => 3
[24] => 4
[25] => 5
[26] => 6
[27] => 7
[28] => 1
[29] => 2
[30] => 3
[31] => 4
)

[11] => Array
(
[1] => 5
[2] => 6
[3] => 7
[4] => 1
[5] => 2
[6] => 3
[7] => 4
[8] => 5
[9] => 6
[10] => 7
[11] => 1
[12] => 2
[13] => 3
[14] => 4
[15] => 5
[16] => 6
[17] => 7
[18] => 1
[19] => 2
[20] => 3
[21] => 4
[22] => 5
[23] => 6
[24] => 7
[25] => 1
[26] => 2
[27] => 3
[28] => 4
[29] => 5
[30] => 6
)

[12] => Array
(
[1] => 7
[2] => 1
[3] => 2
[4] => 3
[5] => 4
[6] => 5
[7] => 6
[8] => 7
[9] => 1
[10] => 2
[11] => 3
[12] => 4
[13] => 5
[14] => 6
[15] => 7
[16] => 1
[17] => 2
[18] => 3
[19] => 4
[20] => 5
[21] => 6
[22] => 7
[23] => 1
[24] => 2
[25] => 3
[26] => 4
[27] => 5
[28] => 6
[29] => 7
[30] => 1
[31] => 2
)

)
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Bon bah ton tableau est bien construit, le problème ne vient pas de la.
C'est ton à l'afficher/traitement le problème.
Comment tu construis la table qui affiche le calendrier ?
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
Comme ceci :
<?php foreach ($date as $m=>$days): ?>
<div class="month" id"month<?php echo $m; ?>">
<table>
<thead>
<tr>
<?php foreach ($date->days as $d): ?>
<th><?php echo substr($d,0,3) ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<tr>
<?php foreach ($days as $d=>$w): ?>
<td><?php echo $d; ?></td>
<?php if($w == 7): ?>
</tr><tr>
<?php endif ?>
<?php endforeach; ?>
</tr>
</tbody>
</table>
</div>
<?php endforeach; ?>

raison de l'edition : oublie d'une partie
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Le problème viendrait du premier foreach ?
Tu n'as pas les entêtes des noms de jours pour chaque mois c'est ca ?

Si tu changes d'année, c'est toujours janvier et février qui sont affiché correctement ou ca change ?
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
Bah disons que je ne sais pas quel mois sont affiché correctement je sais juste qu'il m'en affiche que 2
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Il manque une partie du code non ? Ya pas un foreach au dessus pour les mois ?

Et attention :
<div class="month" id="month<?php echo $m; ?>">


Jérémy
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
le code :
<div class="periods">
<div class="year"><?php echo $year; ?></div>
<div class="months">
<ul>
<?php foreach ($date->months as $id=>$m): ?>
<li><a href="#" id="linkMonth<?php echo $id+1; ?>"><?php echo $m; ?></a></li>
<?php endforeach; ?>
</ul>
</div>
<?php $dates = current($dates); ?>
<?php foreach ($date as $m=>$days): ?>
<div class="month" id="month<?php echo $m; ?>">
<table>
<thead>
<tr>
<?php foreach ($date->days as $d): ?>
<th><?php echo substr($d,0,3) ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<tr>
<?php foreach ($days as $d=>$w): ?>
<td><?php echo $d; ?></td>
<?php if($w == 7): ?>
</tr><tr>
<?php endif ?>
<?php endforeach; ?>
</tr>
</tbody>
</table>
</div>
<?php endforeach; ?>
</div>



Et ensuite oui erreur d'inatention mais cela ne change rien :/
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Mmh tu joues entre $date et $dates, je sais pas si c'est intentionnel ou pas, mais je t'avoue que je ne vois pas la différence (j'ai pas accès au totu et cela quelque temps que je ne l'ai pas regardé)
0
shishi1906 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention  
 
Merci !!! oubli d'un "s" a un $dates. Oui je vais changer une des deux variables, je suivais le tuto à la lettre pour essayer de ne pas trop m'embrouiller mais je pense que cela m'éviteras des soucis.
0