Question sur un calendrier php/mysql
Résolu/Fermé
vxs2b
Messages postés
16
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
12 juin 2009
-
4 juin 2009 à 14:42
Brachior Messages postés 613 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 22 juin 2009 - 5 juin 2009 à 21:44
Brachior Messages postés 613 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 22 juin 2009 - 5 juin 2009 à 21:44
A voir également:
- Question sur un calendrier php/mysql
- Calendrier partagé google - Guide
- Easy php - Télécharger - Divers Web & Internet
- Synchroniser calendrier outlook et gmail - Guide
- Mysql community server - Télécharger - Bases de données
- Mon calendrier ovulation - Télécharger - Santé & Bien-être
9 réponses
Brachior
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
46
5 juin 2009 à 09:58
5 juin 2009 à 09:58
bizarre ta méthode Oo et elle te sort des mois encore plus bizarre ...
passons le fait que si tu te retrouve en février, ta méthode ne fonctionne pas ...
mais tu commence a compter a partir du jour présent,
l'affichage va te faire 5 4 3 2 1 30 29 28 27 [...] 6
c'est pas vraiment la définition d'un mois pour moi =/
je te conseillerai de recuperer le timestamp du 1er jour du mois
( tu recuperes le mois et l'année et avec mktime tu lui donne mktime(0,0,0,$mounth,1,$year)
manuel ici : https://www.php.net/mktime )
ensuite tu te sers de timestamp et des fonction de php pour créer ton mois
( ça gérera les mois et les années bissextile )
de plus tu pourra te servir du timestamp pour identifier ton jour dans ta bdd
( 4octets au lieu d'une suite de char a 1octet chacun ^^ )
passons le fait que si tu te retrouve en février, ta méthode ne fonctionne pas ...
mais tu commence a compter a partir du jour présent,
l'affichage va te faire 5 4 3 2 1 30 29 28 27 [...] 6
c'est pas vraiment la définition d'un mois pour moi =/
je te conseillerai de recuperer le timestamp du 1er jour du mois
( tu recuperes le mois et l'année et avec mktime tu lui donne mktime(0,0,0,$mounth,1,$year)
manuel ici : https://www.php.net/mktime )
ensuite tu te sers de timestamp et des fonction de php pour créer ton mois
( ça gérera les mois et les années bissextile )
de plus tu pourra te servir du timestamp pour identifier ton jour dans ta bdd
( 4octets au lieu d'une suite de char a 1octet chacun ^^ )
vxs2b
Messages postés
16
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
12 juin 2009
1
4 juin 2009 à 15:20
4 juin 2009 à 15:20
Personne qui puisse m'aider ici ?
vxs2b
Messages postés
16
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
12 juin 2009
1
5 juin 2009 à 09:22
5 juin 2009 à 09:22
up ^^
Brachior
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
46
5 juin 2009 à 10:00
5 juin 2009 à 10:00
voila un exemple de ce que tu peux faire avec le timestamp ( et de l'AJAX )
http://dtc.no.jutsu.free.fr/dtc.no.jutsu/Test/calendrier/
PS : je n'ai pas fait l'enregistrement ^^
donc si tu clique sur "enregistrer" ça n'enverra rien xD
EDIT : le problème du timestamp est qu'il est codé sur 32bits (2^32) donc pas éternel ^^
(valide jusqu'en fevrier 2037 =X)
mais d'ici la tous les serveurs seront en 64bits (2^64) (voir plus)
donc la on aura le temps ^^
http://dtc.no.jutsu.free.fr/dtc.no.jutsu/Test/calendrier/
PS : je n'ai pas fait l'enregistrement ^^
donc si tu clique sur "enregistrer" ça n'enverra rien xD
EDIT : le problème du timestamp est qu'il est codé sur 32bits (2^32) donc pas éternel ^^
(valide jusqu'en fevrier 2037 =X)
mais d'ici la tous les serveurs seront en 64bits (2^64) (voir plus)
donc la on aura le temps ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
vxs2b
Messages postés
16
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
12 juin 2009
1
5 juin 2009 à 14:02
5 juin 2009 à 14:02
Merci de ta réponse Brachior.
Il est vrai que ma méthode est " bizarre " comme tu dis, j'ai fais ce bout de code avec les quelques notions que je connaissais, timestamp/mktime etc ... je ne connaissais pas vraiment donc j'ai voulu essayer de faire ça un peu à la barbare mais a priori ça complique les choses force 12 ^^.
Sinon, d'après les tests que j'ai effectués, les mois qui sortent me paraissaient justes, mais bon ... un peu tiré par les cheveux quand même ^^
Pour le coup des années bissextiles, c'est pas faux, je me demandais depuis le moment ou j'avais finit ce code comment j'allais faire pour les définir :x.
Je m'en vais de ce pas exécuter les quelques conseils que tu m'as donné, en espérant que ça passe comme dans du beurre ^^.
Il est vrai que ma méthode est " bizarre " comme tu dis, j'ai fais ce bout de code avec les quelques notions que je connaissais, timestamp/mktime etc ... je ne connaissais pas vraiment donc j'ai voulu essayer de faire ça un peu à la barbare mais a priori ça complique les choses force 12 ^^.
Sinon, d'après les tests que j'ai effectués, les mois qui sortent me paraissaient justes, mais bon ... un peu tiré par les cheveux quand même ^^
Pour le coup des années bissextiles, c'est pas faux, je me demandais depuis le moment ou j'avais finit ce code comment j'allais faire pour les définir :x.
Je m'en vais de ce pas exécuter les quelques conseils que tu m'as donné, en espérant que ça passe comme dans du beurre ^^.
vxs2b
Messages postés
16
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
12 juin 2009
1
5 juin 2009 à 14:10
5 juin 2009 à 14:10
Petite correction mineure, pour les personnes qui seraient amenées à lire ce sujet,
l'adresse du manuel d'mktime est : http://fr2.php.net/mktime
l'adresse du manuel d'mktime est : http://fr2.php.net/mktime
vxs2b
Messages postés
16
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
12 juin 2009
1
5 juin 2009 à 14:40
5 juin 2009 à 14:40
Une petite question brachior, concernant le mktime, car la je suis perdu et je trouve pas la réponse au nouveau probleme qui se pose a moi ( si on peut appeler ca un probleme ^^ )
donc j'ai tester cette fonction avec un truc tout bete :
<?
$hier = mktime(0,0,0,date('m'),date('d')-1,date('Y'));
echo date('Y-m-d',$hier);
echo '<br>';
echo date('Y-m-d');
?>
jusque la rien d'anormal je me retrouve avec afficher sur l'ecran :
2009-06-04
2009-06-05
Maintenant je me pose cette question :
est ce que je dois faire un mktime pour chaque jour ( pour remonter jusqu'à 1 mois en arriere ) ou est ce qu'il y'a moyen de faire ca avec une boucle ? en gros, une fois qu'on a compris le fonctionnement du mktime, comment peut on l'exploiter ?
Car en fait, mon but n'est pas de créer un calendrier mais bel et bien de retracer les jours précedents ( d'ou le fait de se retrouver avec une liste comme tu as dis ressemblant a " 5 4 3 2 1 30 29 28 27 [...] " ) ( mais ca apres ce n'est que du poffinage de presentation )
si t'as des precisions a me donner, ou un tuto qui se rapproche de mon cas ( que je fasse pas du copier coller betement sans comprendre ^^ )
donc j'ai tester cette fonction avec un truc tout bete :
<?
$hier = mktime(0,0,0,date('m'),date('d')-1,date('Y'));
echo date('Y-m-d',$hier);
echo '<br>';
echo date('Y-m-d');
?>
jusque la rien d'anormal je me retrouve avec afficher sur l'ecran :
2009-06-04
2009-06-05
Maintenant je me pose cette question :
est ce que je dois faire un mktime pour chaque jour ( pour remonter jusqu'à 1 mois en arriere ) ou est ce qu'il y'a moyen de faire ca avec une boucle ? en gros, une fois qu'on a compris le fonctionnement du mktime, comment peut on l'exploiter ?
Car en fait, mon but n'est pas de créer un calendrier mais bel et bien de retracer les jours précedents ( d'ou le fait de se retrouver avec une liste comme tu as dis ressemblant a " 5 4 3 2 1 30 29 28 27 [...] " ) ( mais ca apres ce n'est que du poffinage de presentation )
si t'as des precisions a me donner, ou un tuto qui se rapproche de mon cas ( que je fasse pas du copier coller betement sans comprendre ^^ )
vxs2b
Messages postés
16
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
12 juin 2009
1
5 juin 2009 à 16:37
5 juin 2009 à 16:37
apres m'etre battu avec une boucle qui n'en finissait pas, j'arrive finalement a ce resultat :
<?
$h=0;
echo '<table border=1>'."\n";
echo '<tr width="280" align="center"><b>Jour à afficher</b></tr>';
echo '<tr>';
for($k=1;$k<32;$k++){
echo '<td width="80" align="center">'
.date('d/M',mktime(0,0,0,date('m'),date('d')-$h,date('Y')))
.'</td>';
if($k%7==0) echo'</tr>';
$h++;
}
echo '</table>';
?>
Donc rien de tres sophistiqué , un tableau tout simple ( pas très beau d'ailleurs ) avec les 31 derniers jours affichés, maintenant je suis confronté a un autre problème, faire le lien entre ce tableau et une table mysql a afficher en fonction du jour ou je clique ... si tu ( ou quelqu'un d'autre ) as une idée du "comment faire" ... je suis preneur ^^
<?
$h=0;
echo '<table border=1>'."\n";
echo '<tr width="280" align="center"><b>Jour à afficher</b></tr>';
echo '<tr>';
for($k=1;$k<32;$k++){
echo '<td width="80" align="center">'
.date('d/M',mktime(0,0,0,date('m'),date('d')-$h,date('Y')))
.'</td>';
if($k%7==0) echo'</tr>';
$h++;
}
echo '</table>';
?>
Donc rien de tres sophistiqué , un tableau tout simple ( pas très beau d'ailleurs ) avec les 31 derniers jours affichés, maintenant je suis confronté a un autre problème, faire le lien entre ce tableau et une table mysql a afficher en fonction du jour ou je clique ... si tu ( ou quelqu'un d'autre ) as une idée du "comment faire" ... je suis preneur ^^
Brachior
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
46
5 juin 2009 à 21:44
5 juin 2009 à 21:44
et bien tout va se faire dans ton "echo"
si tu fais par exemple :
la tu peux créer une page event.php qui récupère dans le tableau $_GET le timestamp
et tu pourras faire tes appels a la bdd avec
( tu peux aussi tout faire dans la même page .. mais si tu débutes, vaut mieux dispatcher pour mieux comprendre ^^ )
echo '<td width="80" align="center">'.date('d/M',mktime(0,0,0,date('m'),date('d')-$h,date('Y'))).'</td>';
si tu fais par exemple :
int time = mktime(0,0,0,date('m'),date('d')-$h,date('Y')); echo '<td width="80" align="center"><a href="event.php?time='.time.'">'.date('d/M',time).'</a></td>';
la tu peux créer une page event.php qui récupère dans le tableau $_GET le timestamp
et tu pourras faire tes appels a la bdd avec
( tu peux aussi tout faire dans la même page .. mais si tu débutes, vaut mieux dispatcher pour mieux comprendre ^^ )