Formater la date et l'heure actuelles en PHP

Vous voudrez souvent travailler avec des dates et des heures lors du développement de sites Web. Par exemple, vous devrez peut-être afficher la dernière date de modification sur un message ou indiquer depuis combien de temps un lecteur a écrit un commentaire. Vous devrez peut-être également afficher un compte à rebours des jours précédant un événement spécial..

Heureusement, PHP est livré avec des fonctions de date et d'heure intégrées qui nous aideront à faire tout cela et beaucoup plus facilement.

Ce tutoriel va vous apprendre à formater la date et l'heure actuelles en PHP. Vous apprendrez également comment obtenir l’horodatage d’une chaîne de date et comment ajouter et soustraire des dates différentes..

Obtenir la date et l'heure au format chaîne

date ($ format, $ timestamp) est l’une des fonctions de date et d’heure les plus utilisées en PHP. Il prend le format de sortie souhaité pour la date en tant que premier paramètre et un entier en tant que valeur d'horodatage qui doit être converti au format de date donné. Le second paramètre est facultatif et son omission donnera en sortie la date et l’heure actuelles au format chaîne en fonction de la valeur de $ format.

le $ format Ce paramètre accepte une série de caractères en tant que valeurs valides. Certains de ces caractères ont une signification simple: Y vous donne la représentation numérique complète de l'année avec 4 chiffres (2018), et y ne vous donne que les deux derniers chiffres de l'année en cours (18). De même, H vous donnera l'heure au format 24 heures avec des zéros non significatifs, mais h vous donnera l'heure au format 12 heures avec des zéros non significatifs. 

Voici quelques-uns des caractères de format de date les plus courants et leurs valeurs.

Personnage Sens Exemple
jour du mois avec zéros 03 ou 17
j jour du mois sans zéros 3 ou 17
jour de la semaine sous forme d'abréviation de trois lettres lun
l journée complète de la semaine Lundi
m mois sous forme de nombre avec des zéros non significatifs 09 ou 12
n mois sous forme de nombre sans zéros 9 ou 12
M mois sous forme d'abréviation à trois lettres SEP
F mois complet septembre
y année à deux chiffres 18
Y année complète 2018

Il existe de nombreux autres caractères spéciaux pour spécifier la sortie du rendez-vous amoureux() une fonction. Il est préférable de consulter le tableau des caractères de format dans rendez-vous amoureux() documentation des fonctions pour plus d'informations sur les cas particuliers.

Voyons quelques exemples pratiques de la rendez-vous amoureux() fonctionne maintenant. Nous pouvons l'utiliser pour obtenir l'année en cours, le mois en cours, l'heure actuelle, etc., ou pour obtenir une chaîne de date complète.

Vous pouvez également utiliser le rendez-vous amoureux() fonction pour afficher l'heure. Voici quelques-uns des caractères de format d'heure les plus couramment utilisés:

Personnage Sens Exemple
g heures au format 12 heures sans zéros au début 1 ou 12
h heures au format 12 heures avec des zéros non significatifs 01 ou 12
g heures au format 24 heures sans zéros 1 ou 13
H heures au format 24 heures avec des zéros non significatifs 01 ou 13
une am / pm en minuscule un m
UNE am / pm en majuscule UN M
je minutes avec les zéros au début 09 ou 15
s secondes avec des zéros au début 05 ou 30

Et voici quelques exemples de sortie de chaînes de temps formatées.

// Sortie - 11:03:37 AM écho date ('h: i: s A'); // Sortie - Jeudi, 11h04:09 echo date ('l, h: i: s A'); // Sortie - 13 septembre 2018, 11:05:00 echo date ('d F Y, h: i: s A'); ?>

Il est également important que vous échappiez ces caractères spéciaux si vous souhaitez les utiliser dans votre chaîne de date..

Obtenir l'horodatage Unix

Parfois, vous devrez obtenir la valeur du timestamp Unix actuel en PHP. C’est très facile avec l’aide du temps() une fonction. Il renvoie une valeur entière décrivant le nombre de millisecondes écoulées depuis le 1er janvier 1970 à minuit (00:00:00) GMT..

Vous pouvez également utiliser cette fonction pour aller et venir dans le temps. Pour ce faire, tout ce que vous avez à faire est de soustraire le nombre correct de secondes de la valeur actuelle de temps() puis modifiez la valeur résultante dans la chaîne de date souhaitée. Voici deux exemples:

Une chose importante à retenir est que la valeur d'horodatage renvoyée par temps() est agnostique par fuseau horaire et obtient le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC. Cela signifie qu'à un moment donné, cette fonction retournera la même valeur aux États-Unis, en Europe, en Inde ou au Japon..

Une autre façon d’obtenir l’horodatage pour une date donnée serait d’utiliser le mktime ($ heure, $ minute, $ seconde, $ mois, $ jour, $ année) une fonction. Lorsque tous les paramètres sont omis, cette fonction utilise simplement la date et l'heure locales actuelles pour calculer la valeur d'horodatage. Cette fonction peut également être utilisée avec rendez-vous amoureux() générer des chaînes de date et d'heure utiles.

Fondamentalement, temps() peut être utilisé pour aller et venir sur une période de temps, tout en mktime () est utile lorsque vous voulez aller à un moment donné.

Convertir une chaîne de date / heure en un horodatage

le strtotime ($ time, [$ now = time ()]) Cette fonction sera extrêmement utile lorsque vous souhaitez convertir différentes valeurs de date et heure au format chaîne en un horodatage. La fonction peut analyser presque tous les types de chaînes datetime dans des timestamps.

Vous devez absolument vérifier les formats d'heure, les formats de date, les formats date-heure composés et les formats date-heure valides..

Avec les formats de date et d'heure relatifs, cette fonction peut facilement convertir les chaînes couramment utilisées en valeurs d'horodatage valides. Les exemples suivants devraient préciser:

Ajouter, soustraire et comparer des dates

Il est possible d'ajouter et de soustraire des périodes spécifiques à une date. Cela peut être fait avec l'aide du date_add () et date_sub () les fonctions. Vous pouvez également utiliser le date_diff () function pour soustraire deux dates et afficher la différence entre elles en années, en mois et en jours, ou autre chose.

En général, il est plus facile de faire de telles arithmétiques liées à la date et à l’heure dans un style orienté objet avec le Date et heure classe au lieu de le faire de manière procédurale. Nous allons essayer ces deux styles ici, et vous pouvez choisir celui qui vous plaît le plus.

format ('% Y années,% M mois et% d jours'); $ present = new DateTime ('now'); $ future = new DateTime ('dernier jour de janvier 2024'); $ intervalle = $ présent-> diff ($ futur); // Sortie - 05 ans, 04 mois et 17 jours echo $ intervalle-> format ('% Y ans,% M mois et% d jours'); ?>

Lors de l'utilisation DateTime :: diff (), la Date et heure objet sur lequel le diff () la méthode est appelée est soustraite de la Date et heure objet qui est passé à la diff () méthode. Lorsque vous écrivez du code de style procédural, le premier paramètre de date est soustrait du second paramètre de date.

La fonction et la méthode retournent un DateInterval () objet représentant la différence entre deux dates. Cet intervalle peut être formaté pour donner une sortie spécifique en utilisant tous les caractères listés dans la liste. format() documentation de la méthode.

La différence entre le style orienté objet et le style procédural devient plus évidente lorsque vous soustrayez ou ajoutez un intervalle de temps.

Vous pouvez instancier un nouveau Date et heure objet en utilisant le DateTime () constructeur. De même, vous pouvez instancier un DateInterval objet en utilisant le  DateInterval () constructeur. Il accepte une chaîne en tant que paramètre. La chaîne d'intervalle commence par P, qui signifie période. Ensuite, vous pouvez spécifier chaque période en utilisant une valeur entière et le caractère attribué à une période particulière. Vous devriez vérifier le DateInterval documentation pour plus de détails.

Voici un exemple illustrant à quel point il est facile d’ajouter ou de soustraire des dates et des heures en PHP..

add ($ the_interval); // Sortie - Ce sera le samedi 05 mars 2039, après 20 ans, 05 mois et 20 jours à compter de ce jour. echo 'Ce sera'. $ now-> format ('l, d F, Y'). ' après '. $ the_interval-> format ("% Y années,% M mois et% d jours").' à partir d'aujourd'hui.'; $ now = date_create ('now'); $ the_interval = date_interval_create_from_date_string ('20 ans 05 mois 20 jours '); date_add ($ now, $ the_interval); // Sortie - Ce sera le samedi 05 mars 2039, après 20 ans, 05 mois et 20 jours à compter de ce jour. echo 'Ce sera'. $ now-> format ('l, d F, Y'). ' après '. $ the_interval-> format ("% Y années,% M mois et% d jours").' à partir d'aujourd'hui.'; ?>

Vous pouvez également comparer les dates en PHP en utilisant des opérateurs de comparaison. Cela peut être utile de temps en temps. Créons un compteur de jours de Noël en utilisant les opérateurs de comparaison et d’autres Date et heure les méthodes.

 $ christmas) $ christmas-> add (new DateInterval ('P1Y'));  if ($ maintenant < $christmas)  $interval = $now->diff ($ noel); echo $ interval-> format ('% a days'). ' jusqu'à Noël! ';  if ($ now == $ christmas) echo 'Joyeux Noël :)';  // Sortie - 103 jours avant Noël! ?>

Nous avons commencé par créer deux Date et heure objets pour stocker l'heure actuelle et la date du Noël de cette année. Après cela, nous courons un tandis que boucle pour continuer à ajouter 1 an à la date de Noël 2018 jusqu'à ce que la date actuelle soit inférieure à la date de Noël. Cela sera utile lorsque le code sera exécuté le 18 janvier 2024. La boucle while incrémentera la date de Noël tant qu'elle est inférieure à la date actuelle au moment de l'exécution de ce script..

Notre comptoir de Noël fonctionnera sans problème pendant des décennies.

Dernières pensées

Dans ce didacticiel, nous avons appris à afficher la date et l’heure actuelles au format souhaité à l’aide des rendez-vous amoureux() une fonction. Nous avons également vu que rendez-vous amoureux() peut également être utilisé pour n’obtenir que l’année en cours, le mois, etc. Après cela, nous avons appris comment obtenir l’horodatage actuel ou convertir un fichier valide. Date et heure chaîne dans un horodatage. Enfin, nous avons appris comment ajouter ou soustraire une période de temps à différentes dates.

J'ai essayé de couvrir la clé Date et heure fonctions et méthodes ici. Vous devez absolument consulter la documentation pour en savoir plus sur les fonctions non décrites dans le didacticiel. Si vous avez des questions, n'hésitez pas à me le faire savoir dans les commentaires.