[pmwiki-users-fr] calculer le nombre de jours restants avant une date

Petko Yotov 5ko at 5ko.fr
Ven 25 Avr 07:16:09 PDT 2025


Pardon, j'ai changé le conditionnel sans mettre à jour l'expression 
(ligne avec $t2):

   $FmtPV['$Now'] = '$GLOBALS["Now"]';
   $MarkupExpr['difftime'] = 'ME_difftime($args)';
   function ME_difftime($args) {
     global $Now;
     $t1 = strtotime($args[0]);
     $t2 =  isset($args[1]) && $args[1] ? strtotime($args[1]) : $Now;
     $div = isset($args[2]) && $args[2] ? PPTD($args[2]) : 86400;
     return round(($t1-$t2)/$div, 1);
   }

Petko

On 25/04/2025 16:09, Petko Yotov wrote:
> Pour des calculs compliqués, il est parfois plus facile d'ajouter une
> nouvelle expression dédiée.
> 
> Par exemple, dans config.php:
> 
>   $FmtPV['$Now'] = '$GLOBALS["Now"]';
>   $MarkupExpr['difftime'] = 'ME_difftime($args)';
>   function ME_difftime($args) {
>     global $Now;
>     $t1 = strtotime($args[0]);
>     $t2 =  isset($args[1]) && $args[1] ? $Now : strtotime($args[1]);
>     $div = isset($args[2]) && $args[2] ? PPTD($args[2]) : 86400;
>     return round(($t1-$t2)/$div, 1);
>   }
> 
> Puis dans une page:
> 
> # {(difftime {$:Date})} jours
> # {(difftime @{$Now} {$:Date} )} jours
> # {(difftime {$:Date} @{$Now} 1h )} heures
> 
> Résultat:
> 
> 1. 6.4 jours
> 2. -6.4 jours (on a permuté les dates)
> 3. 152.5 heures
> 
> C'est mieux d'écrire la date avec des tirets: 2025-05-02.
> 
> Il peut y avoir un bug dans le traitement de l'expression complexe,
> j'essayerai de trouver du temps pour l'étudier.
> 
> Petko
> 
> P.S. PPTD() existe depuis PmWiki 2.4.4.
> 
> On 25/04/2025 14:32, ooioo wrote:
>> Bonjour,
>> je voudrais afficher dans une page de mon wiki le nombre de jours
>> restant avant la date d'un événement.
>> J'ai vu :
>> https://www.pmwiki.org/pipermail/pmwiki-users/2008-February/049421.html
>> 
>> # {(div 33 2)}
>> # {(sub (div 33 2) 2)}
>> # {(ftime today)}
>> # {(ftime %s today)}
>> (:Date:2025/05/02:)
>> #{$:Date}
>> # {(ftime {$:Date})}
>> # {(ftime %s {$:Date})}
>> # {(sub (ftime %s {$:Date}) (ftime %s today))}
>> # {(div (sub (ftime %s {$:Date}) (ftime %s today)) 86400)}
>> 
>>  	*  16.5
>>  	*  14.5
>>  	* 25 avril 2025 à 00h00
>>  	* 1745532000
>>  	* 2025/05/02
>>  	* 02 mai 2025 à 00h26
>>  	* 1746138377
>> 
>> 	*
>>  	* 86400
>> 
>> 8 reste vide, {(sub (ftime %s {$:Date}) (ftime %s today))} ne
>> fonctionne pas.
>> 
>> Je ne trouve pas...
>> 
>> Cordialement,
>> 
>> Pierre.
> 
> _______________________________________________
> pmwiki-users-fr mailing list
> pmwiki-users-fr at pmichaud.com
> http://www.pmichaud.com/mailman/listinfo/pmwiki-users-fr



Plus d'informations sur la liste de diffusion pmwiki-users-fr