Produire une date/heure relative à partir d'horodatages en PHP
Introduction
Détermination de la date relative /time basé sur un horodatage est une tâche courante en programmation. Cette fonctionnalité devient plus complexe lorsque l'on considère différents intervalles de temps et la direction de la conversion (passée ou future).
Réponse
La fonction ci-dessous fournit une approche complète de la conversion Horodatages Unix (obtenus à l'aide de la fonction time()) aux formats date/heure relatifs, tenant compte à la fois du passé et du futur. Il génère des sorties telles que :
La fonction utilise une série d'instructions conditionnelles pour déterminer la représentation temporelle appropriée basé sur la différence entre l'heure actuelle et l'heure horodatage :
<br>fonction time2str($ts)<br>{</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">// Handle syntax variations if(!ctype_digit($ts)) $ts = strtotime($ts); // Calculate the difference between now and the timestamp $diff = time() - $ts; // Check for exact matches to simplify handling if($diff == 0) return 'now'; // Handle past timestamps if($diff > 0) { // Calculate day difference $day_diff = floor($diff / 86400); // Format past time intervals switch(true) { case ($day_diff == 0): return constructPastInterval($diff); // Hours, minutes, seconds case ($day_diff == 1): return 'Yesterday'; case ($day_diff < 7): return $day_diff . ' days ago'; case ($day_diff < 31): return ceil($day_diff / 7) . ' weeks ago'; case ($day_diff < 60): return 'last month'; default: return date('F Y', $ts); } } // Handle future timestamps else { // Calculate absolute difference $diff = abs($diff); // Calculate day difference and format future time intervals based on logic similar to the past case. }
}
Le La fonction constructPastInterval() n'est pas affichée dans cette réponse mais gère le formatage des intervalles passés (heures, minutes, secondes).
Cette fonction offre une solution robuste et polyvalente pour générer des représentations date/heure relatives à partir d'horodatages, éliminant ainsi le besoin de plusieurs scripts ou d'un codage personnalisé complexe.
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!