PHP la fonction Date()

La fonction date est une fonction à laquelle on a presque toujours affaire. Si elle est bien utilisée elle peut afficher tout élément de date pour tout calendrier.

PHP cours tutorial

Manipulation des date en PHP fonctions date

La fonction date formate toujours un timestamps, que vous en fournissiez un ou non.


Elle peut renvoyer plusieurs valeurs qu’on ne peut pas toutes les énumérer ici c’est très long .
En voici les plus utiles à notre avis.


Lettre Signification Valeurs possibles Exemple
s Secondes 00 à 59 53
i Minutes 00 à 59 26
H Heure 00 à 23 00
I Indique si l'heure d'été est activée(1 = oui, 0 = non) 0 ou 1 1
O Différence d'heures avec l'heure GMT (Greenwich) -1200 à +1200 +0200
d Jour du mois 01 à 31 29
D Jour en anglais et en abréger Sunday à Saturday wed
m Mois de l'année 01 à 12 08
Y Année, sur 4 chiffres Beaucoup de possibilités 2005
y Année, sur 2 chiffres Beaucoup de possibilités 05
L Indique si l'année est bissextile (1 = oui, 0 = non) 0 ou 1 0
l Jour de la semaine écrit en anglais Sunday à Saturday Monday
F ou M Mois écrit en anglais January à December August
t Nombre de jours dans le mois 28 à 31 31
w Numéro du jour de la semaine 0 (dimanche) à 6 (samedi) 1
W Numéro de la semaine dans l'année 01 à 52 35
z Numéro du jour de l'année 0 à 366 240

Et voici comment elle fonctionne : Code PHP pour afficher le jour :

Sélectionner le code


	< ?php
	$jour= date(‘d’) ;
	echo 'Aujourd\'hui, nous sommes le : '. $jour;
	?>

 

Qu'est-ce qu'un timestamps?


C’est un nombre qui compte le nombre de secondes écoulé depuis le 1er janvier 1970 à minuit.
Pour connaître le timestamp actuel en PHP on utiles la fonction time .
Code php :

Sélectionner le code


<?php
echo 'Le timestamp actuel est : ' . time();
?>

 

Ce code affichera le timestamp actuel comme ceci :

Le timestamp actuel est : 1544998169

Le timestamp augmente à chaque seconde qui s’écoule de 1.
Si vous donnez à la fonction date un timestamp elle fera le calcule sur ce moment, exemple :
Code PHP :
Sélectionner le code

<?php
$timestamp = 1280000026 ; // C'est l'heure qu'il était quand j'écrivais le tutoriel !
?>
<p>Voici un  timestamp sur lequel je veux savoir la date  
:</p>
<p>
 <?php
$timestamp = 1280000026 ; // C'est l'heure qu'il était quand j'écrivais le tutoriel !
?>

<ul>
<li> <?php echo date('d/m/Y', $timestamp); ?></li>

<li>Ce jour-là était  <?php echo date('l', $timestamp); ?> ( c'est en anglais )</li>
<li>Il était exactement : <?php echo date('H\h i\m\i\n s\s', $timestamp); ?> </li>
<li>Il y avait <?php echo date('t', $timestamp); ?> jours ce mois-ci.</li>

</ul>

</p>

 
Voici un timestamp sur lequel je veux savoir la date :

  • 24/07/2010
  • Ce jour-là était Saturday ( c'est en anglais )
  • Il était exactement : 19h 33min 46s
  • Il avait 31 jours ce mois-ci.

Nous avons ajouté le timestamp voulu comme paramètre à la fonction date.
Nous pouvons utiliser le timestamp pour de nombreuses applications.
Par exemple, lorsque vous écrirez un article, il vous suffira d'enregistrer le timestamp, et vous pouvez grâce à ce nombre ressortir toutes les infos possibles dessus : le jour, l'heure qu'il était etc...
Pour récupérer le timestamp correspondant à une date, on utilise la fonction mktime.

PHP Date () - composez la date


Syntaxe


date(format,timestamp)



Paramètre Description
format Requis. Spécifie le format de l'timestamp
timestamp Facultatif. Spécifie un timestamp. Par défaut la date et l'heure du jour

Le paramètre exigé de format dans la fonction date () spécifie comment composer la date et /ou heure.
Voici quelques caractères qui peuvent être employés :
d - Représente le jour du mois (01 31)
m - Représentent un mois (01 12)
Y - Représente une année (avec quatre chiffres) (note Y en majuscule )
Une liste de tous les caractères qui peuvent être employés dans le paramètre de format, peut être trouvée dans notre référence de date de PHP.
D'autres caractères, comme "/", ". " ou " - "peuvent également être inséré entre les lettres pour ajouter le formatage additionnel :
Testez le code suivant pour afficher la date entière jour, moi année.:

Sélectionner le code


	<?PHP
	echo date("d/m/Y") . "<br />";
	echo date("d.m.Y") . "<br />";
	echo date("d-m-Y") . "<br />";
	echo date("D d-m-Y")
	?> 

 
Le résultatt du code ci-dessus est :

16/12/2018
16.12.2018
16-12-2018
Sun 16-12-2018


Un autre exemple, mais regardez bien ce code.
Code PHP :
Sélectionner le code


<?php
echo 'L\'heure actuelle est : ' . date('H \h\e\u\r\e\s');
?>


 

on vient de mettre des anti slache ( \ ) devant tout caractère qu’on ne veut pas que la fonction remplace

l’affichage va donner par exemple :

L'heure actuelle est : 22 heures

La fonction date est simple à utiliser.

PHP date() - Ajouter un timestamp

Le paramètre facultatif timestamp dans la fonction date() spécifie un timestamp. Si vous ne spécifiez pas un timestamp, la date du jour et l'heure seront employées.

La fonction mktime()

La fonction mktime() renvoie le timestamp Unix pendant une date.
Syntaxe pour le mktime()

mktime (heure, minute, seconde , mois, jour, année)



Pour déterminer un jour à l'avenir nous additionnons simplement un mktime () à l'argument du jour :
Exemple: déterminer la date de demain .

Sélectionner le code


<?PHP
$demain = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo "demainsera le : " .date ("d/m/Y", $demain) ;
?> 

 
Le résultat du code ci-dessus a pu être n'importe quoi de pareil :

demainsera le : 17/12/2018

Pour une référence complète de toutes les fonctions de date, allez SVP à notre référence complète de date de PHP.
La référence contient une courte description, et des exemples d'utilisation, pour chaque fonction !



Un exemple pratique :écrire les jours en français


Si vous êtes né après le 1er janvier 1970 à minuit et vous voulez savoir le jour de votre naissance.
Tout d’abord on va changer le jour de l’anglais en français ; pour cela on va créer un array qui associera le numéro 0 au texte "Dimanche", le numéro 1 au texte "Lundi" etc... Revoyez le chapitre sur les array si vous avez oublié.

Code PHP :

Sélectionner le code


// On crée un array pour les jours (0 => Dimanche, 1 => Lundi...)
    $jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');

 

Afficher le jour de naissance


Puis on va utiliser un formulaire pour récupérer la date de naissance.
On fait le calcule on utilisant le timestamp et la fonction date.

Code PHP que vous mettez dans une page que vous nomez "naissance.php:

Sélectionner le code

<?php
if ((isset($_POST['jour']) AND $_POST['jour']<>"") AND (isset($_POST['mois'])AND $_POST['mois']<>"") AND (isset($_POST['an'])AND $_POST['an']<>""))
{    // on saisie sa date de naissance, on va calculer le jour qu'il était.
    
    // On calcule le timestamp correspondant à la date saisie
    $timestamp_naissance = mktime(0, 0, 0, $_POST['mois'], $_POST['jour'], $_POST['an']);
    // On récupère le numéro du jour correspondant au timestamp (0, 1, 2, 3...)
    $numero_jour = date('w', $timestamp_naissance);
    
    // On utilise  l’array pour numéroter les jours (0 => Dimanche, 1 => Lundi...)
    $jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
    // On récupère le nom du jour en français grâce à l'array qu'on vient de créer
    $jour_naissance = $jours[$numero_jour];
    
    // Puis on affiche le résultat>
    echo '<p>Vous êtes né un ' . $jour_naissance . '</p>';
}
else // Sinon, c'est que le visiteur n'a pas encore saisie sa date de naissance, on affiche le formulaire
{
?>
<p>Indiquez votre date de naissance (jj/mm/aaaa) :</p>
 
<form method="post" action="naissance.php">
<p>
    <input type="text" name="jour" size="2" maxlength="2" /> /
    <input type="text" name="mois" size="2" maxlength="2" /> /
    <input type="text" name="an" size="4" maxlength="4" /><br /><br />

    <input type="submit" value="Envoyer" />
</p>
</form>
 
<?php
}
?>

 

Indiquez votre date de naissance (jj/mm/aaaa) :


Par carabde 20 Aout 2014