Bonjour,
Voilà j'ai suivi le tuto de calendrier php et j'aimerais que la date d'aujourd'hui s'affiche en gris ou d'une autre manière de façon à ce qu'on repère quel jour on est.
Comment rajoutez à mon code cela ?
index.php
<!Doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset="UTF-8">
<title>Calendier</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
<link rel="stylesheet" href="../public/css/calendar.css">
</head>
<body>
<!-- Le body sert à mettre tout le contenu -->
<nav class="navbar navbar-dark bg-primary mb-3"><!-- On creer une balise nav avec ç l'interieur différente classes -->
<a href="" class="navbar-brand">Mon calendrier</a> <!-- Lien pour avoir le titre de notre ite -->
</nav>
<?php
require'..\src\Date\Month.php';
try // on va essayer de récupérer le mois
{
$month = new App\Date\Month($_GET['month']?? null,$_GET['year']?? null); // si valeur défini alors cela prendra la valeur [] sinon cela prendra la valeur nulle
$start =$month->getStartingDay()->modify('last monday'); // on récupère le premier jour, le premier avril or on cherche le premier lundi, on utilse donc le modify
}
catch(\Exception $e) // si on ne rentre pas le bon mois
{
$month= new App\Date\Month(); // cela passe par défaut à la date d'aujourdh'hui si la peronne rentre un mois faux
}
?>
<div class="d-flex flex-row align-items-center justify-content-between mx-sm-3">
<h1><?=$month->toString();?></h1> <!-- Nous retourne alors le mois en chaine de caractère grâce à toSting -->
<div class="flèche">
<a href="/index.php?month=<?= $month->previousMonth()->month;?>&year=<? $month->previousMonth()->year;?>"class"btn btn-primary"><</a>
<a href="/index.php?month=<?=$month->nextMonth()->month;?>&year=<?$month->nextMonth()->year;?>""class"btn btn-primary">></a>
</div>
</div>
<table class="calendar__table calendar__table--<?$month->getWeeks();?>weeks"> <!-- tableau à 7 colonne pour les jour mais avec des lignes qui varient car des mois ont 5 semaines et d'autres 6 -->
<?php for ($i=0; $i<$month->getWeeks(); $i++): ?><!-- pour i allant de 0 à i strictement inférieur au nombre de semaine-->
<tr>
<?php
foreach($month->days as $k => $day):
$date=(clone$start)->modify("+".($k+$i*7). "days")
?> <!--les différents jour de la semaine qui vont s'afficher-->
<td class="<?=$month->withinMonth($date)? '':'calendar__othermonth';?>">
<div class="calendar__weekday"><?=$day;?></div> <!-- on utilise des div pour mieux utilser-->
<div class="calendar__day"><?=$date->format('d');?></div> <!-- nous donne le numéros du jour-->
</td>
<?php endforeach;?>
</tr>
<?php endfor;?>
</table>
</body>
</html>
un simple. fonction isToday($date)
pourrait suffire. à toi de voir comment tu veux faire.
Salut,
ben, ta date d'aujourd'hui est affichée ici non ?
<h1><?=$month->toString();?></h1>
Du coup, un truc dans ce genre quoi :
// html
<h1 class="date-today"><?=$month->toString();?></h1>
// css
.date-today {
color: grey;
}
Je pense que je n'ai pas bien compris la question.
Quelque chose comme ça mais la ça ne marchera pas ....
En gros le but d'un calendrier est quand même de savoir quel jour on est sauf que dans mon calendrier j'ai tout sauf quelque chose qui me dit quel jour on est....
rajouter ça ne me fera apparître que le mois et non le jour...
<h1 class="date-today"><?=$month->toString();?></h1>
Ah mais, tu veux juste afficher la date d'aujourd'hui ?
du coup ce serai juste Date('d-m-y')
, mais ça me parait trop simple, je pense que je ne comprend toujours pas.
Désolé c'est sûrement parce-que je n'ai pas suivi le tuto, du coup j'ai du mal a piger.
t'inquiète pas ;)
En gros lorsque je met en local host cela me renvoie mon calendrier, avec le mois actuel et tout ses jours. Le truc c'est que je ne peux pas voir quel jour on est puisque il ne me l'indique pas .... je suppose qu'il faudrait donc rajouter une fonction + un css pour que sur l'affichage je vois en gris par exemple le jour d'aujourd'hui.
Tu sais récupérer la date du jour avec la fonction date
Tu sais récupérer la date dans la cellule du tableau
Tu compare les 2 dates (tu peux comparer le timestamp ou les chaines au format Y-m-d, et si elles sont identique tu rajoute une classe à la cellule.
Je ne suis pas sûr de savoir faire ça.....
il faudrait du coup que je créer tout d'abord une nouvelle ''public function'' et ensuite que je créer une nouvelle class ?