[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