Maison > développement back-end > tutoriel php > Comment calculer et formater le temps écoulé depuis une date en PHP ?

Comment calculer et formater le temps écoulé depuis une date en PHP ?

Susan Sarandon
Libérer: 2024-12-16 15:04:10
original
120 Les gens l'ont consulté

How to Calculate and Format Elapsed Time Since a Date in PHP?

Recherche du temps écoulé depuis une date et une heure en PHP

Déterminer le temps écoulé depuis une date et une heure spécifiques peut être utile dans diverses applications, comme l'affichage de l'heure depuis qu'un événement s'est produit. En PHP, il existe des moyens de calculer et de formater le temps écoulé de manière conviviale.

Calcul du temps écoulé

Pour calculer le temps écoulé entre une date donnée l'heure et l'heure actuelle, vous pouvez utiliser la fonction strtotime() pour convertir la représentation sous forme de chaîne de la date et de l'heure en un horodatage. L'horodatage peut ensuite être soustrait de l'horodatage actuel, qui représente l'heure actuelle en secondes depuis l'époque Unix (1er janvier 1970 UTC).

Par exemple :

$time = strtotime('2010-04-28 17:25:43');
$elapsedTime = time() - $time;
Copier après la connexion

Formatage du temps écoulé

Une fois que vous avez le temps écoulé sous forme de nombre de secondes, vous pouvez le formater de manière conviviale. Une approche courante consiste à convertir les secondes en unités telles que des minutes, des jours ou des années. Vous pouvez utiliser une boucle pour parcourir une liste d'unités et leur nombre de secondes correspondant, puis renvoyer l'unité appropriée et sa valeur.

Par exemple, la fonction suivante calcule et formate le temps écoulé :

function humanTiming($time) {
    $tokens = array (
        31536000 => 'year',
        2592000 => 'month',
        604800 => 'week',
        86400 => 'day',
        3600 => 'hour',
        60 => 'minute',
        1 => 'second'
    );

    foreach ($tokens as $unit => $text) {
        if ($time < $unit) continue;
        $numberOfUnits = floor($time / $unit);
        return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
    }
}
Copier après la connexion

Exemple d'utilisation

Pour utiliser cette fonction, vous pouvez simplement transmettre l'horodatage en tant que argument :

$time = strtotime('2010-04-28 17:25:43');
echo 'Event happened '.humanTiming($time).' ago';
Copier après la connexion

Cela affichera le temps écoulé dans un format adapté à l'affichage par l'utilisateur, tel que « L'événement s'est produit il y a 4 jours » ou « L'événement s'est produit il y a 1 minute ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal