Leçon 4 : Travailler avec les heures et les dates

Dans cette leçon, nous expérimenterons les nombreuses et différentes possibilités de travail avec les heures et les dates dans PHP. Dans la leçon précédente, nous avons vu quelques exemples simples, essentiellement pour montrer ce qu'est PHP. Dans celle-ci, nous étudions la fonction documentationdate.

Les fonctions d'heure et de date

PHP fournit un vaste éventail de fonctions liées à l'heure et la date. Dans cette leçon, nous nous attacherons à la plus importante d'entre elles : la fonction documentationdate.

Selon son paramétrage, la fonction documentationdate renvoie l'heure ou la date courantes dans beaucoup de formats différents. Voici quelques uns des paramètres les plus utiles :

date("y")
Retourne l'année courante d'une date ; pour aujourd'hui, elle retourne : 24
date("m")
Retourne le mois courant d'une date ; pour aujourd'hui, elle retourne : 04
date("F")
Retourne le nom du mois courant d'une date ; pour aujourd'hui, elle retourne : April
date("d")
Retourne le jour courant du mois d'une date ; pour aujourd'hui, elle retourne : 16
date("l")
Retourne le nom du jour de la semaine d'une date ; pour aujourd'hui, elle retourne : Tuesday
date("w")
Retourne le jour de la semaine courant d'une date ; pour aujourd'hui, elle retourne : 2
date("H")
Retourne l'heure courante d'un temps ; au temps courant, elle retourne : 05
date("i")
Retourne les minutes courantes d'un temps ; au temps courant, elle retourne : 28
date("s")
Retourne les secondes courantes d'un temps ; au temps courant, elle retourne : 25

L'exemple suivant illustre l'utilisation de la fonction documentationdate :


	<html>
	<head>
	<title>Time and date</title>

	</head>
	<body>

	<?php

	echo "<p>Today it's " . date("l") . "</p>";

	?>

	</body>
	</html>

	

Voici l'heure courante, il est : 1713245305

Et maintenant, accrochez-vous… ça se complique un peu ! La fonction documentationtime() renvoie l'heure courante comme le nombre de secondes écoulées depuis le 1er janvier 1970 à 0:00 GMT.


	<html>
	<head>
	<title>time and date</title>
	</head>
	<body>

	<?php

	echo "<p>It's been exactly " . time() . " seconds since January 1, 1970, 12:00 PM, GMT </ p> ";

	?>

	</body>
	</html>

	

On dit que le temps en nombre de secondes depuis le 1er janvier 1970 à 0:00 GMT est une « date horaire, ou horodate » (date horaire UNIX), ce qui est très pratique quand on travaille avec des dates ou heures, futures ou passées.

Par défaut, la fonction documentationdate utilise la date horaire courante (c'est-à-dire la valeur courante de la fonction documentationtime()). En ajoutant un paramètre supplémentaire, on peut toutefois fournir une autre date horaire et donc se placer dans le passé ou le futur. Dans l'exemple suivant, nous fixons la date horaire à 0 seconde, depuis le 1er janvier 1970 à 0:00 GMT. Ce faisant, on peut savoir quel jour c'était.


	<html>
	<head>
	<title>time and date</title>
	</head>
	<body>

	<?php

	echo "<p>January 1, 1970 was a " . date("l",0) . "</p>";

	?>

	</body>
	</html>

	

À moins d'être un génie des mathématiques, il devient vite compliqué de compter le nombre de seconde depuis le 1er janvier 1970 jusqu'à une date spécifique dans le futur ou le passé. Mais une autre fonction très pratique vient à notre aide, la fonction documentationmktime, qui fait le calcul à notre place.

La syntaxe de documentationmktime est (heure, minute, seconde, mois, jour, année). L'exemple suivant convertit la date du premier pas de l'Homme sur la lune (le 7 juillet 1969 à 7:56) :


	<html>
	<head>
	<title>time and date</title>
	</head>
	<body>

	<?php

	echo mktime (2,56,0,7,21,1969);

	?>

	</body>
	</html>

	

Vous remarquerez qu'elle retourne un nombre négatif, cette date se situant en effet avant le 1er janvier 1970.

Nous pouvons maintenant rassembler le tout dans la fonction documentationdate et chercher le jour de la semaine où cet événement a eu lieu.


	<html>
	<head>
	<title>time and date</title>
	</head>
	<body>

	<?php

	echo date("l", mktime(2,56,0,7,21,1969));

	?>

	</body>
	</html>

	

À quoi est-ce que ça peut servir ?

Tout ceci peut sembler un peu abstrait à ce stade. Après tout, à quoi peut donc bien servir une fonction comme documentationtime() sur la terre ? Et plus important, quand est-ce qu'on apprend quelque chose d'utile à mettre dans ses pages ?

La réponse : vous apprenez des blocs de construction, les seules limites à ce que vous pouvez construire sont votre créativité et votre imagination ! Je dirais même que vous en savez plus que vous croyez. Par exemple, est-ce que vous pensez être capable de construire un site web dont l'image d'arrière plan change chaque jour de la semaine et qui fonctionne dans tous les navigateurs ?

Bien sûr que vous pouvez ! Voyez cet exemple :


	<html>
	<head>
	<title>time and date</title>
	</head>

	<body background="background_<?php echo date("w"); ?>.png">

	</body>
	</html>

	

L'exemple précédent, avec une image de fond dynamique, nécessite simplement de préparer sept images et de les nommer background_1.png, background_2.png, background_3.png, etc.

Lorsqu'un utilisateur arrive sur votre site un mardi, le fond d'écran sera background_2.png, et le jour suivant ce sera background_3.png. Facile et simple !

Dans la leçon suivante, vous serez confronté à de nouveaux blocs de construction, lesquels serviront à créer des boucles et des répétitions dans votre code.

C'est amusant PHP, n'est-ce pas ?



<< Leçon 3 : Votre première page PHP

Leçon 5 : Les boucles >>