Filtre durée

Un filtre pour calculer la période entre deux dates ou l’âge d’un élément

Utilisation du filtre

Ajouter le code du filtre dans votre fichier mes_fonctions.php

filtre durée
version 0.25

Vous pouvez ensuite utiliser le filtre selon la syntaxe

[(#DATE_DEBUT|duree{#DATE_FIN})]

Il est possible d’ajouter un 2e paramètre pour préciser le formatage de durée

[(#DATE_DEBUT|duree{#DATE_FIN,horaire})]

Différents formatages de durée proposés

Voici les différents formatages proposés

ValeurDéfinitionExemple
court on arrondit à la durée la plus proche (formatage par défaut) 4 semaines
etendu affichage complet en lettres 4 semaines 3 jours 23 heures 2 minutes
horaire affichage heures et minutes 2h04
minute affichage minutes cumulées 124
iso8601 affichage selon la norme iso 8601 P18Y9W4DT11H9M8S
ical même chose que iso8601 P18Y9W4DT11H9M8S

Pour faciliter l’internationalisation, il est aussi possible de sortir un élément inviduellement :

  • Y : année
  • W : semaine
  • D : jour
  • H : heure
  • M : minute
  • S : seconde

Exemple d’utilisation
On veut « un format à l’anglaise » qui affiche la durée de la façon suivante : 4’46’’

[(#DATE_DEBUT|duree{#DATE_FIN,M})']][(#DATE_DEBUT|duree{#DATE_FIN,S})'']

Références techniques

Exemple d’utilisation avec le plugin Agenda

Je programme un site de cinéma qui utilise le plugin Agenda pour saisir les séances. Pour chaque séance, le rédacteur saisit une date de début et fin

Voici ma boucle pour afficher toutes les séance d’un film avec l’heure de début de film et la durée

<B_seance><table>
<tr>
  <td>Jour</td>  
  <td>Séance</td>
  <td>Titre du film</td>
  <td>Durée</td>      
</tr>
<BOUCLE_seance(EVENEMENTS){id_article}{par date_debut}>
<tr>
  <td>[(#DATE_DEBUT|affdate_jourcourt)]</td>
  <td>[(#DATE_DEBUT|heures)h][(#DATE_DEBUT|minutes)]</td>
  <td><a href="#URL_ARTICLE">#TITRE</a></td>
  <td>[(#DATE_DEBUT|duree{#DATE_FIN,minute}) min]</td>      
</tr>
</BOUCLE_seance>
</table></B_seance>

Explications
On utilise une boucle EVENEMENTS pour récupérer les séances liées à l’article grâce au critère {id_article} par ordre chronologique grâce au critère {par date_debut}

<BOUCLE_seance(EVENEMENTS){id_article}{par date_debut}>

L’affichage des résultats se fait dans un tableau
Pour afficher la durée on utilise la filtre duree avec l’option d’affichage minute

[(#DATE_DEBUT|duree{#DATE_FIN,minute}) min]

Utiliser le filtre durée pour calculer l’âge d’un élément

Pour calculer l’âge d’un élément, il faut utiliser comme date de fin, la date actuelle.

[(#DATE|duree{#ENV{date}})]

Développement

Le code du filtre est disponible sur la zone à l’adresse http://zone.spip.org/trac/spip-zone...

Voir aussi

Le filtre date_relative peut aussi très pratique.

Discussion

12 discussions

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 22 juillet 2010