Point virgule en trop dans une info virtuelle

Bonjour, j’ai une info virtuelle « CafeDate » de type autre qui a pour valeur « date(‹ d/m/Y ›,#[CafeTimestamp]#); ». Dans « CafeTimestamp », j’enregistre le #timestamp# lorsque je change le filtre (et j’historise cette valeur numérique).
Le problème c’est que dans « CafeDate », j’obtiens bien la date, mais avec un « ; ». J’ai donc par exemple 15/06/2019;
Si je supprime le « ; » dans le calcul « date(‹ d/m/Y ›,#[CafeTimestamp]#) », j’obtiens quelque chose comme « 0.00086676572560674 ».
Donc, comment on fait pour avoir la date et uniquement la date!
Merci

j’ai le meme soucis pas trouvé la solution

Salut,

Il doit être possible de faire disparaitre ce point-virgule à l’aide de la fonction str_replace.

str_replace : Permets de remplacer toutes les occurrences dans une chaîne.

Je ne suis pas un spécialiste mais quelque chose dans cette idée devrait remplacer le point-virgule par rien:

str_replace ( ";" , "" , date(‘d/m/Y’,#[CafeTimestamp]#);)

Bonjour,

Si je ne mets pas de ; dans le calcul, le résultat est correct (en v3 et v4)
image

J’obtiens une valeur numérique si j’enlève les ’ dans le format de la date : date(d/m/Y,#timestamp#)

Edit: Après quelques manipulations, j’obtiens comme vous une valeur numérique et en remettant le ; une date. Plus moyen de récupérer une date correcte sans le ;

Bonjour Salvialf, après un essai avec str_replace, même problème. Si je ne mets pas de « ; » à la fin (après la parenthèse du str_replace), j’ai un chiffre, si je mets un « ; » j’ai une date avec un point virgule!

Bonjour @desloges, @Salvialf

La valeur numérique 0,001035616… retournée aujourd’hui est le résultat de l’opération 23 / 11 / 2019 ( / = division ) En remplaçant les / par des espaces dans la commande date, on obtient 23 11 2019

Si je mets dans le calcul un espace entre str_replace et la parenthèse, il m’affiche ça:
Apparemment, on ne peut pas mettre de php à cet endroit !image

Le plus simple ne serait-il pas de conserver le timestamp en numérique et d’avoir un widget pour l’affichage ?
Exemple en v3 avec le widget unixEpochToDate:
image

Salvialf un petit widget v4 pour afficher les dates à partir d’un timestamp et avec un paramètre pour définir le format à moins qu’il existe déjà ?

La comme ça je n’en connais pas mais effectivement à première vue c’est pas trop compliqué à faire et ça peut être pratique. Je vais essayer de m’y pencher ce week-end.

1 « J'aime »

Sinon pas de / dans le format de la commande date car jeedom fait alors les divisions.

date('d m Y',#[CafeTimestamp]#)

Le widget permettrait de conserver le timestamp intact et de faire des calculs sur les dates sans avoir à refaire la conversion date texte en timestamp
AMHA ça devrait être un widget core

Merci jpty, le widget unixEpochToDate fait exactement ce que je veux (juste après quelques modif dans le widget). Du coup plus besoin de l’info virtuelle CafeDate! Juste CafeTimestamp.
Et je comprends maintenant la raison du résultat. Toutefois, je suis pas sûr que le « ; » devrait être affiché!
Merci pour ton aide !
Et pour info, voilà la modif :
$('#formattedDate#id#').text(new Intl.DateTimeFormat('fr-FR').format(date));