1656 votes

Comment calculer le temps relatif ?

Donné un spécifique à `` valeur, comment puis-je afficher heure relative, comme :

  • Il y a 2 heures
  • Il y a 3 jours
  • Il y a un mois

Et cetera ?

1070voto

Vincent Robert Points 16530

Jeff, votre code est agréable mais pourrait être plus clair avec des constantes (comme suggéré dans le Code complet).

373voto

Ryan McGeary Points 76053

jquery.timeago plugin

Jeff, en raison d'un Débordement de Pile utilise jQuery largement, je vous conseille de jquery.timeago plugin.

Avantages:

  • Éviter les horodatages daté "il ya 1 minute" même si la page a été ouverte il y a 10 minutes; timeago s'actualise automatiquement.
  • Vous pouvez profiter pleinement de la page et/ou un fragment de mise en cache de vos applications web, parce que les horodateurs ne sont pas calculés sur le serveur.
  • Vous arrivez à utiliser les microformats comme les cool kids.

Il suffit de le joindre à votre date et l'heure sur DOM prêt:

jQuery(document).ready(function() {
    jQuery('abbr.timeago').timeago();
});

Cette transformera abbr éléments avec une classe de timeago et un ISO 8601 timestamp dans le titre:

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>

en quelque chose comme ceci:

<abbr class="timeago" title="July 17, 2008">4 months ago</abbr>

ce qui donne: il y a 4 mois. Comme le temps passe, les horodateurs seront automatiquement mis à jour.

Avertissement: j'ai écrit ce plugin, donc je suis partial.

349voto

Jeff Atwood Points 31111

Eh bien, voici comment nous le faisons sur Stack Overflow.

Suggestions ? Commentaires ? Moyens d’améliorer cet algorithme ?

101voto

DevelopingChris Points 12510
<pre class="lang-csharp prettyprint-override"><code></code><p>Je préfère cette version pour sa concision et possibilité d’ajouter de nouveaux points de coutil. Cela pourrait être encapsulé avec une extension Latest() TimeSpan au lieu de ce long 1 liner, mais par souci de concision dans affichage, cela va faire <strong>Cela corrige l’heure il y a 1 heures, en fournissant une heure jusqu'à ce que 2 heures se sont écoulées</strong></p></pre>

74voto

Thomaschaaf Points 5901

Ici une réécriture de Jeffs Script PHP :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X