Maison >développement back-end >tutoriel php >Comment puis-je convertir des horodatages en chaînes « Time Ago » en PHP ?
La conversion des horodatages en chaînes d'heure relative peut être utile pour afficher des informations dans un format plus convivial. En PHP, il existe plusieurs fonctions et approches que vous pouvez utiliser pour y parvenir.
Une approche populaire consiste à utiliser la fonction strtotime() pour convertir une représentation sous forme de chaîne d'un horodatage dans son format d'horodatage Unix (le nombre de secondes depuis l'époque Unix, le 1er janvier 1970 00:00:00 UTC). Vous pouvez ensuite utiliser des fonctions comme gmdate() ou date() pour formater l'horodatage Unix, ce qui peut être utile si votre horodatage est dans un format non conventionnel.
Vous pouvez également utiliser la classe DateTime() pour convertir un horodatage ou une chaîne de date dans un objet PHP DateTime. La classe DateTime fournit diverses méthodes pour manipuler et formater les dates et les heures. En comparant l'objet DateTime représentant l'horodatage avec l'heure actuelle, vous pouvez calculer le temps écoulé et construire une chaîne d'heure relative.
Voici un exemple de fonction qui utilise la classe DateTime pour convertir un horodatage en une chaîne d'heure antérieure. :
function time_elapsed_string($datetime, $full = false) { $now = new DateTime; $ago = new DateTime($datetime); $diff = $now->diff($ago); $diff->w = floor($diff->d / 7); $diff->d -= $diff->w * 7; $string = array( 'y' => 'year', 'm' => 'month', 'w' => 'week', 'd' => 'day', 'h' => 'hour', 'i' => 'minute', 's' => 'second', ); foreach ($string as $k => &$v) { if ($diff->$k) { $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : ''); } else { unset($string[$k]); } } if (!$full) $string = array_slice($string, 0, 1); return $string ? implode(', ', $string) . ' ago' : 'just now'; }
Cette fonction prend un horodatage ou une chaîne de date comme argument et renvoie une chaîne d'heure relative. En définissant l'argument $full sur true, vous pouvez obtenir une chaîne plus détaillée incluant toutes les unités de temps pertinentes. Sinon, elle n'inclura que la plus grande unité de temps pertinente.
Exemple d'utilisation :
echo time_elapsed_string('2013-05-01 00:22:35'); echo time_elapsed_string('@1367367755'); # timestamp input echo time_elapsed_string('2013-05-01 00:22:35', true);
Sortie :
4 months ago 4 months ago 4 months, 2 weeks, 3 days, 1 hour, 49 minutes, 15 seconds ago
Cette fonction offre un moyen simple et personnalisable de convertir les horodatages en chaînes de temps relatives en PHP. Vous pouvez l'utiliser pour afficher des informations urgentes de manière claire et concise pour vos utilisateurs.
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!