Changeset 17908 in spip-zone for _contribs_


Ignore:
Timestamp:
Jan 7, 2008, 12:50:42 PM (12 years ago)
Author:
erational@…
Message:

permettre plusieurs formatages de durée

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _contribs_/_filtres_/duree/inc_duree.php

    r17905 r17908  
    44 *    Nom du Filtre : duree   
    55 *   +----------------------------------+
    6  *    date : 2008.01.06
    7  *    version: 0.1
     6 *    date : 2008.01.07
     7 *    auteur :  erational - http://www.erational.org
     8 *    version: 0.2
     9 *    licence: GPL
    810 *   +-------------------------------------+
    911 *
    10  *    retourne la durée entre 2 dates et retourne le resultat
     12 *    retourne la duree entre 2 dates
    1113 *   
    12  *    TODO: ajout 3eme parametre pour paramatrer la sortie (et langue) 
     14 *    TODO:
     15 *    - integrer lang
     16 *    - support des durées negatives ?
     17 *   
     18 *    parametres type_affichage
     19 *    - court   : 34 semaines, 4 jours, .... (par defaut)
     20 *    - etendu  : 4 semaines 3 jours 23 heures 2 minutes
     21 *    - horaire : 4h39
     22 *    - minute  : 124       
    1323*/
    1424
    15 function duree($date_debut,$date_fin) {
     25function duree($date_debut,$date_fin,$type_affichage='court') {
    1626  $d_debut = mktime(
    1727              substr($date_debut,11,2),
     
    4050  $diff_seconds -= $diff_minutes * 60;
    4151 
    42   $str = "";
    43   if ($diff_weeks>0)   $str .="${diff_weeks}s ";
    44   if ($diff_days>0)    $str .="${diff_weeks}j ";
    45   if ($diff_hours>0)   $str .="${diff_hours}h";
    46   if ($diff_minutes>0) $str .="${diff_minutes}mn";
    47   if ($diff_seconds>0) $str .="${diff_seconds}s";
     52  $str = ""; 
     53  switch ($type_affichage) {
     54      case "court" :    if ($diff_weeks>1) $str = "$diff_weeks semaines";
     55                        else if ($diff_weeks>0) $str = "$diff_weeks semaine";
     56                        else if ($diff_days>1) $str = "$diff_days jours";
     57                        else if ($diff_days>0) $str = "$diff_days jour";
     58                        else if ($diff_hours>1) $str = "$diff_hours heures";
     59                        else if ($diff_hours>0) $str = "$diff_hours heure";
     60                        else if ($diff_minutes>1) $str = "$diff_minutes minutes";
     61                        else if ($diff_minutes>0) $str = "$diff_hours minute";                 
     62                        break;
     63                 
     64      case"etendu" :    if ($diff_weeks>1) $str .= "$diff_weeks semaines";
     65                        else if ($diff_weeks>0) $str .= "$diff_weeks semaine";
     66                        if ($diff_days>1) $str .= " $diff_days jours";
     67                        else if ($diff_days>0) $str .= " $diff_days jour";
     68                        if ($diff_hours>1) $str .= " $diff_hours heures";
     69                        else if ($diff_hours>0) $str .= " $diff_hours heure";
     70                        if ($diff_minutes>1) $str .= " $diff_minutes minutes";
     71                        else if ($diff_minutes>0) $str .= "$diff_hours minute";
     72                        if ($diff_seconds>1) $str .= " $diff_seconds secondes";
     73                        else if ($diff_seconds>0) $str .= "$diff_seconds secondes";                   
     74                        break;
     75
     76      case"horaire":    $str = ($diff_hours+($diff_days*24)+($diff_weeks*24*7))."h";
     77                        if ($diff_minutes<10) $str .= "0";
     78                        $str .= $diff_minutes;                                                       
     79                        break;
     80                                   
     81      case"minute":     $str = $diff_minutes+($diff_hours*60)+($diff_days*60*24)+($diff_weeks);                                   
     82                        break;                 
     83           
     84      default:          break;
     85  }   
     86
    4887        return $str;
    4988}
    5089
    51 
    5290?>
Note: See TracChangeset for help on using the changeset viewer.