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

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


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.



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