Y at-il une bonne bibliothèque d'impression pour les différences d'horodatage UNIX. Quelque chose sur les goûts des choses vues dans les sites de réseautage social comme "x minutes ago", "x heures ago", "x days ago" etc. Je sais que ce ne sera pas difficile d'écrire tout seul, mais pourquoi réinventer la roue?Jolie bibliothèque d'impression pour les différences de temps en PHP
Répondre
Je ne sais pas s'il y a une bibliothèque pour PHP pour cela, mais Jeff (qui a créé ce site web) a posé cette question il y a longtemps. Voir this question pour plus de détails. Je suis sûr que vous pourriez obtenir beaucoup d'inspiration de cela. Jeff répond même à cette question avec the code they use on StackOverflow itself.
Je ne pense pas que ce serait si difficile d'écrire cela vous-même, alors pourquoi ne pas passer 5 minutes à l'écrire au lieu d'une demi-heure à la recherche d'une bibliothèque?
essayer
<?php
function rel_time($from, $to = null)
{
$to = (($to === null) ? (time()) : ($to));
$to = ((is_int($to)) ? ($to) : (strtotime($to)));
$from = ((is_int($from)) ? ($from) : (strtotime($from)));
$units = array
(
"year" => 29030400, // seconds in a year (12 months)
"month" => 2419200, // seconds in a month (4 weeks)
"week" => 604800, // seconds in a week (7 days)
"day" => 86400, // seconds in a day (24 hours)
"hour" => 3600, // seconds in an hour (60 minutes)
"minute" => 60, // seconds in a minute (60 seconds)
"second" => 1 // 1 second
);
$diff = abs($from - $to);
$suffix = (($from > $to) ? ("from now") : ("ago"));
foreach($units as $unit => $mult)
if($diff >= $mult)
{
$and = (($mult != 1) ? ("") : ("and "));
$output .= ", ".$and.intval($diff/$mult)." ".$unit.((intval($diff/$mult) == 1) ? ("") : ("s"));
$diff -= intval($diff/$mult) * $mult;
}
$output .= " ".$suffix;
$output = substr($output, strlen(", "));
return $output;
}
?>
PHP a une classe intégrée pour ce billet depuis PHP 5.3 partir:
Utilisez la méthode format() pour obtenir la sortie que vous souhaitez, si vous avez besoin décider des unités nécessaires je pense.
defined('SECOND') ? NULL : define('SECOND', 1);
defined('MINUTE') ? NULL : define('MINUTE', 60 * SECOND);
defined('HOUR') ? NULL : define('HOUR', 60 * MINUTE);
defined('DAY') ? NULL : define('DAY', 24 * HOUR);
defined('MONTH') ? NULL : define('MONTH', 30 * DAY);
defined('YEAR') ? NULL : define('YEAR', 12 * MONTH);
class Time{
public $td;
public function set_td($timestamp){
$this->td = time() - $timestamp;
}
public function string_time($timestamp){
$this->set_td($timestamp);
if ($this->td < 0){
return "not yet";
}
if ($this->td < 1 * MINUTE){
return $this->td <= 1 ? "just now" : $this->td." seconds ago";
}
if ($this->td < 2 * MINUTE){
return "a minute ago";
}
if ($this->td < 45 * MINUTE){
return floor($this->td/MINUTE)." minutes ago";
}
if ($this->td < 90 * MINUTE){
return "an hour ago";
}
if ($this->td < 24 * HOUR){
return floor($this->td/HOUR)." hours ago";
}
if ($this->td < 48 * HOUR){
return "yesterday";
}
if ($this->td < 30 * DAY){
return floor($this->td/DAY)." days ago";
}
if ($this->td < 12 * MONTH){
$months = floor($this->td/MONTH);
return $months <= 1 ? "one month ago" : $months." months ago";
}else{
$years = floor($this->td/YEAR);
return $years <= 1 ? "one year ago" : $years." years ago";
}
}
}
$time = new Time();
Il suffit de mettre votre horodatage dans le nouvel objet et de récupérer le temps diffenrece dans seconds.e.g.
$string = $time->string_time($timestamp);
- 1. Classe PHP pour analyser les différences
- 2. Java comment calculer les différences de temps
- 3. Différences de temps Python
- 4. Réécrire en "jolie URL"?
- 5. Qu'est-ce qu'une bibliothèque PHP qui montrera les différences en ligne?
- 6. Différences de version de bibliothèque entre les distributions Linux
- 7. Représentation des différences de temps dans Ruby
- 8. Différences entre les méthodes de chargement d'une extension en PHP
- 9. Quelqu'un connaît une jolie bibliothèque d'impression Actionscript 3 pour les données JSON?
- 10. Jolie bibliothèque .Net GUI Comme l'utilisation dans Yahoo Messenger
- 11. Bibliothèque Ruby pour manipuler XML avec des différences minimes?
- 12. Bibliothèque Python pour traiter les données associées au temps?
- 13. Les différences entre l'écho, l'écho(), impression et impression() en PHP
- 14. PHP: Calculer les différences entre les valeurs de tableau?
- 15. Meilleure bibliothèque pour le jeu Javascript en temps réel avec backend PHP
- 16. Temps de conversion en PHP?
- 17. Bibliothèque Python 3 pour la communication midi en temps réel
- 18. Bibliothèque LXML en PHP?
- 19. [PHP]: Logique avec des différences de date
- 20. Bibliothèque Ajax pour PHP
- 21. Meilleure bibliothèque pour les statistiques en C++?
- 22. différences de produits JRockit (Mission de contrôle/temps réel)
- 23. Une jolie interface graphique pour autotest
- 24. Python jolie imprimante XML pour chaîne XML
- 25. Différences entre Perl et PHP
- 26. Y at-il une bibliothèque en php pour gérer et compresser les fichiers mp3 en php ..?
- 27. Faces Jolie problème de cartographie
- 28. Compiler les plugins d'erreur de temps pour Php
- 29. Scraping Bibliothèque pour PHP - phpQuery?
- 30. Comment gagner du temps en temps UTC en php/mysql?
J'ai récemment répondu à cette question pour quelqu'un d'autre: http://stackoverflow.com/questions/4394161/php-time-calculation/4394181#4394181 –