Gérer les dates et l'heure
Publié par cyruss il y a 5 mois
La fonction date
La fonction date() permet de formater l'heure locale du serveur, mais attention l'heure locale est fonction de la situation géographique du serveur. Donc si un client en France interroge un serveur à Tokyo, il visualisera l'heure de Tokyo.
- <?php
- ?>
Dans l'exemple la variable $date est initialisée par la fonction date("d-m-Y") (ici: 09-05-1980).
Les paramètres contenus entre les parenthèses d-m-Y peuvent être placés dans l'ordre que vous désirez, ainsi la date au format US sera écrite ainsi : date("Y-m-d"), vous trouverez sur la page suivante tous les paramètres ce cette fonction, voici son prototypage :
string date (string format [, int timestamp])
Le timestamp permet de formater une date autre que celle courante. le timestamp peut être renvoyé par la fonction mktime() que nous verrons après.
Voici les attributs de la fonction date() :
Année, 2 chiffres; i.e. "99"| attribut | Exemple |
| a | "am" (matin) ou "pm" (après-midi) |
| A | "AM" (matin) ou "PM" (après-midi) |
| B | 000 à 999 |
| c | Heure au format ISO 8601 * |
| d | Jour du mois, sur deux chiffres (éventuellement avec un zéros) :"01" à "31" |
| D | Jour de la semaine, en trois lettres (et en anglais) : par exemple "Fri" (pour Vendredi) |
| F | Mois, textuel, version longue; en anglais, i.e. "January" (pour Janvier) |
| g | Heure, au format 12h, "1" à "12" |
| h | Heure, au format 12h, "01" à "12" |
| H | heure, au format 24h, "00" à "23" |
| G | Heure, au format 24h sans les zéros initiaux, "0" à "23" |
| i | Minutes; "00" à "59" |
| I | Booléen pour savoir si l'heure d'été est activée ("1") ou non ("0") |
| j | Jour du mois sans les zéros initiaux: "1" à "31" |
| l | ('L' minuscule) Jour de la semaine, textuel, version longue; en anglais, i.e. "Friday" (pour Vendredi) |
| L | Booléen pour savoir si l'année est bissextile ("1") ou pas ("0") |
| m | Mois; i.e. "01" à "12" |
| n | Mois sans les zéros initiaux; i.e. "1" à "12" |
| M | Mois, en trois lettres (et en anglais) : par exemple "Jan" (pour Janvier) |
| O | Différence d'heure avec celle du méridien de greenwich (ex: +100) |
| r | Date au format de la RFC 822 |
| s | Secondes; i.e. "00" à "59" |
| S | Suffixe ordinal d'un nombre, en anglais, sur deux lettres : i.e. "th", "nd" |
| t | Nombre de jour dans le mois donné, i.e. "28" à"31" |
| T | Retourne le fuseau horaire du serveur (ex EST, MDT) |
| U | Secondes depuis une époque |
| w | Jour de la semaine au format numérique (0 : dimanche,..., 6 lundi) |
| W | Numéro de la semaine au format ISO 8601 (les semaines commencent le lundi) |
| Y | Année, 4 chiffres; i.e. "1999" |
| y | |
| z | Jour de l'année; i.e. "0" à "365" |
| Z | Décalage horaire en secondes (i.e. "-43200" à "43200") |
- Aujourd'hui nous sommes le 1980-05-09 (US) et l'heure GMT est 14:42. Dans 432 jours nous serons le 1981-07-05.
La fonction mktime() retourne le nombre de secondes écoulées depuis le 1er Janvier 1970 qui correspond à la date des débuts d'UNIX.
Pour remplacer le ':' par un h (ex: 14h42), il faut ajouter un backslashe avant le h : date("H\hi"), pour spécifier à PHP que cette lettre est un caractère et non à nouveau l'heure en cours.