Définir texte suivant valeur de type date

Bonjour à tous :slightly_smiling_face:
Je souhaiterais pouvoir afficher un texte, suivant une variable de type date que je récupère.
Dans mon cas, je récupère la liste des 3 derniers films/épisodes lus sur Kodi en requêtant ma BDD (via plugin SSH Commander). En formatant le tout dans un virtuel, j’arrive à obtenir cela :

image

J’aimerais afficher, dans la colonne « Dernière lecture », ce genre d’informations :

  • Aujourd’hui
  • Hier
  • Il y a 2 jours
  • Il y a 3 jours

… au lieu d’afficher tout simplement la date.

J’ai donc pensé à passer par un Widget pour faire cela, de cette manière :

J’ai trouvé cette commande dans la documentation officielle :

Cependant, vu que c’est du JS, je ne peux pas utiliser de variable de ce genre « #annee# » dedans.
En ajoutant le texte à la main, le test fonctionne correctement :

Comment pourrais-je faire ? Ou existe-t-il une alternative plus simple, sans passer par un Widget ?

Merci d’avance pour votre aide :grinning:

J’ai tenté une approche différente, en convertissant les dates en timestamp.
Ensuite, pour le widget « hier », je vérifie que le timestamp récupéré est supérieur au timestamp d’hier minuit, et inférieur au timestamp d’aujourd’hui minuit.
Cependant, impossible d’effectuer un test de ce genre dans un Widget :

#value# > '« [Aucun][Plugin_Virtuel KodiStats][timestampyesterday]# » && #value# < '« #[Aucun][Plugin_Virtuel KodiStats][timestamptoday]# »

En faisant ce test, je n’ai pas d’erreur, mais la valeur indique True alors qu’elle devrait être false.
Si je retire les " " , j’obtiens une notification d’erreur :

image
Du coup, j’ai l’impression que l’on peut faire des tests uniquement sur des nombres ou du texte « fixe », mais impossible d’utiliser une valeur d’un équipement ou une variable.

le retour date « string » doit être convertie
sinon via fonction php

je crée un info
avec pour valeur
"2020-08-20"

je teste « testeur d’expression »

date_fr(ucfirst(strftime(le %A %d %B à %H heure %M,strtotime('#[menage histo][1][date]#'))))

: Le Jeudi 20 Août à 00 heure 00

la date est bien pris en compte

va floor conversion secondes en jours dans une nouvelle commande

floor(mktime(0, 0, 0, date("m")  , date("d"), date("Y"))-strtotime('#[menage histo][1][date]#'))/86400

/!\ il va te falloir rajouter un cron


si tu veux par scenario fonction code

$today = new DateTime();

$anciennedate = "#[menage histo][1][date]#";
$anciennedate = str_replace("#", "", $anciennedate); 
$anciennedate = cmd::byString($anciennedate)->execCmd();

$anciennedate = new DateTime($anciennedate);

$interval = $today->diff($anciennedate);  
$interval = $interval->format('%a jour(s)'); 
$scenario->setLog($interval); 

[2020-10-01 01:33:24][SCENARIO] Start : Scenario lance manuellement.
[2020-10-01 01:33:24][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-10-01 01:33:24][SCENARIO] Exécution d’un bloc code
[2020-10-01 01:33:24][SCENARIO] 42 jour(s)
[2020-10-01 01:33:24][SCENARIO] Fin correcte du scénario

Merci pour ton retour. :slightly_smiling_face:
Cependant, je ne comprends pas vraiment comment je peux faire pour arriver à ce que je veux.
J’arrive bien à convertir la valeur via la commande que tu m’as donnée, mais je ne peux toujours pas l’utiliser dans le test de mon Widget.