
Dans cette leçon vidéo, l’instructeur présente les principales fonctions PHP de manipulation des dates. Il commence par la fonction date(), explique comment les caractères de format (Y, d, m, y, h, i, s, a/A, W, etc.) sont interprétés et montre comment les combiner avec des séparateurs littéraux pour obtenir des affichages comme "21/03/2019" ou "22:51:13". Il décrit ensuite la fonction getdate() qui renvoie un tableau associatif contenant les composantes de la date courante, et la fonction time() qui retourne le timestamp Unix (nombre de secondes depuis le 1 janvier 1970). L’instructeur introduit mktime() pour créer un timestamp à partir de valeurs d’heure, minute, seconde, mois, jour et année, et montre comment l’utiliser comme second argument de date() afin de formater des dates arbitraires ou de récupérer le jour de la semaine (token W). Il détaille l’utilisation de checkdate() pour valider une date fournie par l’utilisateur, en découpant la chaîne d’entrée avec explode('/') et en respectant l’ordre mois‑jour‑année requis par la fonction. Enfin, il combine ces notions pour afficher le jour de naissance d’un utilisateur : il crée un tableau des noms de jours indexés de 0 (dimanche) à 6 (samedi), utilise date('W', mktime(...)) pour obtenir l’indice du jour, puis l’affiche. La vidéo se conclut par une démonstration finale montrant que la logique fonctionne pour différentes dates.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon de PHP. Aujourd'hui, nous allons voir les dates. PHP propose une multitude de fonctions qui permettent de manipuler les dates. Et comme d'habitude, je vous recommande d'aller faire un tour sur le site officiel du PHP: www.php.net. Et là, vous trouverez toutes les fonctions supportées et qui permettent de manipuler les dates d'une manière avancée. Nous, dans cette vidéo, nous allons essayer de voir les fonctions les plus utilisées et les plus pratiques. Et la plus populaire d'ailleurs, c'est la fonction date que l'on déclare de la manière suivante. Entre les parenthèses, on va spécifier des mots-clés qui sont reconnus par PHP en tant qu'arguments pour la date. Par exemple, je vais spécifier l'argument Y majuscule comme ça en tant que chaîne de caractères. Et je vais afficher le résultat à l'aide de la fonction echo. Maintenant quand j'exécute, j'ai 2019 qui s'affiche. En réalité, les arguments entre les parenthèses de la fonction date sont déclarés en tant que chaînes de caractères. Les caractères qui sont reconnus par PHP seront évalués comme c'est le cas pour Y et les caractères qui ne le sont pas alors ils seront imprimés tels quels sont. Par exemple, imaginez que je veux afficher la date d'aujourd'hui sous la forme de 21/03/2019. Alors je vais écrire le code suivant: Les caractères d, m et y sont des mots-clés que PHP reconnaît à l'intérieur de la fonction date. Par contre, les slashs ne sont pas reconnus, du coup ils seront imprimés tels qu'ils sont. Maintenant quand j'exécute pour voir le résultat, j'ai l'affichage suivant: 21/03/2019 qui correspond à la date d'aujourd'hui. Alors la fonction date fait référence à la date actuelle, c'est-à-dire à la date et l'heure de l'exécution de la fonction elle-même. En ce qui concerne les mots-clés que l'on peut mettre à l'intérieur, il y en a vraiment beaucoup, mais pour nous on va juste voir quelques exemples et vous pouvez découvrir davantage de mots-clés sur le site officiel de PHP. Par exemple, imaginez que je veux afficher l'heure actuelle, alors je vais écrire le code suivant: h pour dire les heures, deux-points c'est un caractère qui ne sera pas évalué, i pour les minutes, deux-points encore et s pour les secondes. Quand j'exécute, ça m'affiche 22 heures 51 minutes 13 secondes. Il existe aussi le mot-clé a, soit en minuscule ou bien en majuscule, qui permet de retourner la valeur antéméridienne ou postméridienne. Dans ce cas, avec le a minuscule, on aura pm en minuscule parce que maintenant c'est postméridien, ça veut dire après-midi. Et si je mets un A majuscule, alors ça va me retourner la même valeur mais en majuscule. Il y a aussi le mot-clé W qui permet de retourner un entier compris entre 0 et 6 qui fait référence au jour de la semaine. Quand j'exécute, ça me donne la valeur 4 parce qu'on est jeudi. En réalité, dimanche c'est indexé par 0, lundi c'est 1 et samedi c'est 6. Alors cette valeur est toujours comprise entre 0 et 6 et puisqu'aujourd'hui c'est jeudi, alors il est situé à la position 4. Il y a aussi la fonction getDate qui permet de retourner plein de valeurs qui concernent la date mais sous forme d'un tableau associatif. Pour voir à quoi ça ressemble on va exécuter le code suivant: println puisque c'est un tableau et on mettra getDate comme ceci. Donc maintenant quand j'exécute ça m'affiche que c'est un tableau qui contient des clés et des valeurs. Les secondes c'est 32, les minutes c'est 53, les heures c'est 22, etc. C'est-à-dire qu'il y a plein d'informations qui caractérisent le moment actuel. Cependant, on a souvent un léger penchant vers la fonction Date puisqu'il permet de retourner beaucoup plus de valeurs que celles proposées par getDate. Il y a aussi la fonction Time que l'on va déclarer comme ceci. Exécutons pour voir le résultat. Ça me retourne un nombre qui est extrêmement grand. En fait, cette valeur est appelée Timestamp Unix. Il s'agit en PHP du nombre de secondes qui se sont écoulées depuis le 1er janvier 1970 à minuit, qui est considéré comme étant la date officielle du lancement du système Unix. Alors cette date-là constitue une référence d'horloge pour de nombreux langages de programmation et systèmes d'exploitation. Quand j'actualise la page, je vais voir que cette valeur change. Normal parce que ça change au bout de chaque seconde. Et si vous voulez connaître le timestamp par rapport à une date qui est différente du moment actuel, alors on fait appel à la fonction MKTIME comme ceci. Cette fonction peut contenir jusqu'à 6 arguments qu'on va placer de cette manière. Premier argument, c'est l'heure. On mettra par exemple 0 pour dire minuit. Ensuite, les minutes, ensuite les secondes. Les 3 derniers arguments sont le mois, le jour et l'année dans cet ordre. Par exemple on va mettre 1, 3, 2019. Dans ce cas ça va retourner le timestamp relatif au 3 janvier 2019. Et on exécute et ça nous donne cette valeur. Bien sûr cette valeur ne changera pas parce qu'on a fixé la date. D'ailleurs, cette fonction peut être utilisée avec la fonction DATE afin de changer la date que l'on souhaite traiter. Par exemple, si je mets DATE, bon, ça va nous donner 4 pour faire référence à jeudi, parce que c'est la date d'aujourd'hui. Mais je peux passer un deuxième argument à la fonction DATE qui est par défaut TIME, c'est-à-dire que c'est le timestamp actuel. Dans ce cas, rien ne va changer. Mais si je veux changer la date que je veux traiter, dans ce cas je vais tout simplement mettre M4TIME et je mets les valeurs souhaitées. Par exemple 000 pour dire heure, minute, seconde, ça veut dire que c'est minuit. Ensuite on va mettre le mois, le jour et l'année. Par exemple le mois 3, le jour 1 et l'année 2019. Donc maintenant quand j'exécute, je vais voir que ça donne 5. Ça veut dire c'est vendredi. C'est-à-dire qu'à cette date-là, ça veut dire le 1er mars 2019, c'était un vendredi. Alors le deuxième argument que l'on peut passer à la fonction DATE est par défaut TIME, sinon on peut le changer par MKTIME et on fournit ainsi la date souhaitée afin de pouvoir récupérer davantage d'informations concernant celle-ci. Il y a aussi la fonction CHECKDATE qui permet de vérifier la validité d'une date donnée. On va faire un exemple maintenant sur une page différente. Donc c'est index.php qui contient déjà un formulaire qui renferme une zone de texte et un bouton Valider. Maintenant on va vérifier si la date fournie par l'utilisateur est valide ou non. Imaginons par exemple c'est une date de naissance. Alors là on va mettre if isset validé, c'est-à-dire au moment du clic sur le bouton Submit, on va vérifier la date grâce à la fonction check_date. Voilà, CheckDate est une fonction qui renvoie un résultat booléen. Si la date passée aux arguments est valide, dans ce cas elle retourne True, sinon elle retourne False. Les arguments, il faut les placer dans la fonction CheckDate dans cet ordre: le mois, le jour, puis l'année. Ensuite, je vais lister ces arguments. Maintenant, on va continuer le traitement. On va mettre la variable message égale par exemple Date valide. Sinon, alors message vaut date invalide. Voilà, maintenant on va se rendre sur la page index.php. L'utilisateur est censé écrire une date en format francophone. Par exemple, on va mettre le 10 du mois 3 2010. Quand je clique sur valider, je dois récupérer tout d'abord le jour et le mois puis l'année. Je vais les fournir à la fonction CHECKDATE et je vais vérifier ainsi la validité de la date fournie. Alors on va tout simplement décomposer notre chaîne au niveau des slashs. On mettra donc ici un tableau égal EXPLODE, le symbole slash, str, sachant que str ça correspond à la zone de texte. Donc maintenant je dispose d'un tableau qui contient 3 entrées. Tab0 contient le jour, tab1 contient le mois et tab2 contient l'année. Dans ce cas, je vais lister ces paramètres ici. Je mettrai tab1 pour le mois, tab0 qui représente le jour et tab2 qui correspond à l'année. Dans cet ordre, donc le mois, le jour puis l'année. Donc maintenant, je vais exécuter pour voir le résultat et ça me donne date valide. Donc maintenant, imaginez que j'ai mis ici la valeur 13. Ça me donne date invalide. Bon, imaginez que c'est le mois de février et que j'ai spécifié le jour 29. Dans ce cas, ça m'affiche date invalide parce que 2010 n'est pas une année bissextile. Par contre, si je mets 2012 qui est bissextile, dans ce cas ça me retourne date valide. Maintenant, nous allons faire un exemple. On va demander à l'utilisateur de saisir sa date de naissance et on va lui afficher le jour de sa naissance. Par exemple lundi, mardi, etc. Alors on va retourner dans le code et là on va définir un tableau qui contient les jours de la semaine qui correspondent aux index qui sont censés être retournés par l'argument w. Donc on mettra jours= array et on commence par dimanche, lundi, etc. Voilà, comme ceci. Donc le premier jour c'est dimanche, il est indexé par 0, ça veut dire date_w ça retourne 0 si le jour est dimanche et ça retourne 6 si le jour est samedi. Alors on a fait en sorte de faire correspondre les index du tableau avec les jours attendus. Maintenant le traitement à faire c'est tout simplement l'affichage du jour de la naissance de l'utilisateur. Normalement on devrait vérifier la validité de la date grâce au traitement qu'on a fait. Mais pour simplifier le code on va supposer que la date est correcte. Alors on va retirer ce traitement. On va conserver le tableau parce qu'on a toujours besoin de décomposer notre date afin d'en extraire les informations dont on aura besoin. Et on mettra ici echo le tableau jours et entre les crochets on va faire appel à la fonction date. Et comme argument, on va mettre W. Ça veut dire c'est un index qui est compris entre 0 et 6. Le deuxième argument, je vais spécifier MKTIME. Pour l'heure, minute et la seconde, on va mettre minuit, donc 0, 0, 0. Et ensuite, on va spécifier le mois, le jour et l'année. Donc le mois, c'est TAB 1. Le jour, c'est TAB 0. Et l'année c'est Tab2. On exécute maintenant pour voir le résultat. Alors on conserve la même date et quand je clique ça m'affiche mercredi. Bon si je veux afficher le message en bas je mettrai tout simplement ici message égal. Maintenant je reclique et ça me donne mercredi. Pour mieux tester le résultat on va faire référence à la date d'aujourd'hui. On mettra par exemple le 21 mars 2019. Normalement, ça devrait donner jeudi. Et du coup, ça donne jeudi, donc le traitement est bon. On se contente de ça pour cette séance. Merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









