Les Dates et calendriersen php – exercices corrigés fonctions date php5

 Les Dates et calendriers en php –exercices corrigés fonctions date php5 

EXERCICE 1 :

Après avoir consulté le résultat affiché par l’exemple 8-1,
déterminer la date et l’heure de l’exécution de ce script.
Le timestamp en question vaut 1098480456 .

Solution :


<?php
echo date("\Le d / M / Y à H:m:s",1098480456);
?>

Le résultat affiché est : « Le 22 / Oct / 2004 à 23:10:36 »
Notez l’utilisation du caractère d’échappement pour afficher normalement la lettre « L ».

EXERCICE 2 :


Calculez votre age à l’instant actuel à la seconde près.

Le script suivant ne fonctionne pas en local sous Windows et affiche le message suivant : « Warning: mktime()
[function.mktime]: Windows does not support negative values for this function in
c:\wamp\www\php5\C8dates\ch8exo2.php on line
2 ». En effet Windows n’accepte pas les timestamps négatifs et dans l’exemple la date de naissance est antérieure à 1970. En revanche, sur un serveur externe sous Linux, le script fonctionne.


Solution :



<?php
$datenaiss= mktime(9,15,45,1,21,1962);
$aujourdhui=time();
$age=$aujourdhui - $datenaiss;
echo "Mon age est de $age secondes";
?>

On obtient par exemple : Mon age est de 1352626403 secondes


EXERCICE 3 :



Vérifiez si la date du 29 Février 1962 a existé.

Solution :



<?php
if(checkdate(2,29,1962)) {echo "Date valide";}
else{echo "Date non valide";}
?>

Le résultat est : « Date non valide »
 

EXERCICE 4 :


Quel jour de la semaine était le 3 mars 1993 ? Affichez le résultat
en français.


Solution :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-
8859-1">
<title>Afficher le jour de la semaine en français</title>
</head>
<body>
<?php
//Date en français
$jour = mktime(0,0,0,3,3,1993);
$semaine = array(" dimanche "," lundi "," mardi "," mercredi ","
jeudi "," vendredi "," samedi ");
echo "<h2>Le ",date("d M Y ",$jour)," était un ",
$semaine[date('w')], "</h2>";
?>
</body>
</html>

Le résultat est : Le 03 Mars 1993 était un mercredi


EXERCICE 5 :


Affichez toutes les années bissextiles comprises entre 2005 et 2052.


Solution :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-
8859-1">
<title>Afficher les années bissextiles </title>
</head>
<body>
<?php
for($i=2005;$i<=2052;$i++)
{
$date=mktime(0,0,0,1,1,$i);
if(date("L",$date)==1) {echo "L'année $i est bissextile<br />";}
}
?>
</body>
</html>
Les résultats affichés sont :



L'intervalle de validité d'un timestamp va généralement du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT.
 Donc les résultats affichés s’arrêtent à 2036.
En local des alertes sont affichées pour les années postérieures à
2038.


EXERCICE 6 :


Déterminez quel jour de la semaine seront tous les premier Mai des années comprises entre 2005 et 2010. Si le jour est un samedi ou un dimanche, affichez le message « Désolé !». Si le jour est un vendredi ou un lundi affichez « Week end prolongé !».

Solution :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-
8859-1">
<title>Afficher jours de 1er mai </title>
</head>
<body>
<p>
<?php
for($i=2005;$i<=2010;$i++)
{
$date=mktime(0,0,0,5,1,$i);
if(date("w",$date)==6 OR date("w",$date)==0 ) {echo
"1<sup>er</sup> Mai $i : Désolé<br />";}
elseif(date("w",$date)==5 OR date("w",$date)==1 ) {echo
"1<sup>er</sup> Mai $i : Week end prolongé<br />";}
}
?>
</p>
</body>
</html>

Les résultats affichés sont :



 

EXERCICE 7 :


L’Ascension est le quarantième jour après Pâques (Pâques compris dans les 40 jours). Calculez les dates de l’Ascension pour les années 2005 à 2010.

Solution :

 

<?php
for($i=2004;$i<2010;$i++)
{
echo "Jour de Paques : ",date("d M Y ",easter_date($i)),"<br />";
echo "Jour de l'Ascension ",date("d M Y
",easter_date($i)+39*86400),"<br />";
}
?>

Les résultats obtenus sont les suivants :



Article plus récent Article plus ancien

Leave a Reply