Bonjour la communauté.
Je recherche un moyen d’afficher une date qui serait le cumul d’un nombre de jours à une date fixe.
Par exemple, dans un virtuel j’ai un calcul qui me donne 90 jours et une date d’origine au 01/01/2024. Je voudrais alors obtenir dans un format date JJ/MM/AA la nouvelle date.
Plus concrètement, c’est pour la garantie de mon véhicule. Pour ma MG c’est 150 000 km ou 7 ans. Du coup je calcule le km moyen journalier depuis l’achat et je le divise par les 150000 km. Ce qui me donne un nombre de jours que je voudrais ajouter à la date d’achat du véhicule. Juste pour mettre en avant que nous n’avons plus 7 ans mais moins. Histoire de sensibiliser la conductrice… Mon épouse
En vous remerciant
Chris
Bonjour,
En passant par un bloc code…
//date origine : 01 janvier 2024
$dateDepart = ’01-01-2024′;
//durée à rajouter : 90 jours;
$duree = 90;
// transformation de la date en timestamp
$dateDepartTimestamp = strtotime($dateDepart);
// calcul la date de fin
$dateFin = date(‘d-m-Y’, strtotime(‘+’.$duree.’ days’, $dateDepartTimestamp ));
Et la date de départ qui n’est pas celle du jour ?
Bonjour à vous
Merci de m’avoir lu et d’avoir aussi pris le temps de me répondre.
Non il ne s’agit pas de la date du jour.
Avec la date du jour, j’avais quelque chose qui fonctionnait dans mon virtuel mais ce n’est pas ce que je recherchais.
Je vais vous montrer mon virtuel, ce sera peut-être plus parlant
je vous ai donné la solution en bloc code
ce n’est pas moi qui parle de la date du jour mais hlehoux.
Merci
Je l’ai copié et collé, bêtement malheureusement car je ne suis pas compétent en la matière.
Je l’ai exécuté et cela me met un message d’erreur
//date origine : 01 janvier 2024
$dateDepart = "01-01-2024";
//durée à rajouter : 90 jours;
$duree = 90;
// transformation de la date en timestamp
$dateDepartTimestamp = strtotime($dateDepart);
// calcul la date de fin
$dateFin = date('d-m-Y',strtotime('+'.$duree. ' days', $dateDepartTimestamp));
La ce code est figé dans le marbre.
Vous devez créer un scénario ou vous passez le tag de date de depart et la durée venant de votre virtuel
// Récupération des tags du scénario
$tags = $scenario->getTags();
$dateDepart = $tag['#depart#']
idem pour la durée
puis le code fournit pour le calcul et enfin repasser un tag a jeedom avec la valeur calculée
// Mise à jour du tag pour jeedom
$tags['#tosend#'] = $dateFin;
// Passage des tags à Jeedom
$scenario->setTags($tags);
Dans la suite du scénario jeedom vous pouvez alors tester le tag tosend pour avoir sa valeur et faire ce que vous voulez
en effet c’était juste un exemple dont s’inspirer.
je pense que strtotime(« 01-01-2024 + 90 days ») doit marcher
Merci je vais tester tout ça ce soir.
Le nombre de jours à ajouter varie et je dois faire référence à une valeur dans mon virtuel.
Je vais aussi tester la solution avec le code de Iperenna et voir si j’ai bien compris l’explication
Avec le code copié directement de community (qui a modifié les "), ça ne fonctionne pas:
Avec date("Y-m-d H:i:s", strtotime("01-01-2024 + 90 days"))
, ça fonctionne:
Bonjour jpty
Merci pour cette info
Cependant, dans mon cas, le +90 jours doit être issu d’une valeur calculée d’un virtuel
Et si je remplace cette valeur de 90 par le chemin jusqu’à la valeur du virtuel, ça ne donne rien hélas
Je n’ai pas proposé de solution. Juste des corrections des propositions au dessus.
Ce qui vous a été proposé ICI par lperenna doit fonctionner.
Oui ça serait top.
Mais comme je ne maîtrise pas du tout le sujet, je vais faire ça tranquillement ce soir
Merci beaucoup
Bonjour,
Dans ton virtuel et sans bloc code, il suffit de mettre des guillemets sur la valeur du virtuel :
date("Y-m-d H:i:s", strtotime("01-01-2024 + "#[monObjet][monEquipement][maCommande]#" days"))
David
Bonsoir David, j’étais sur la solution code de Iperenna et je ne parvenais pas à mettre la solution en place (juste par manque de connaissance).
Votre solution est juste simple, efficace et correspond à mes attentes. Un grand merci. Merci à tous les autres également pour votre contribution.
Pas de soucis, avec plaisir !
Je pense effectivement qu’il est dommage de donner des solutions avec des blocs codes alors qu’il est possible de proposer une solution « pure Jeedom » avec simplement des scénarios.
Cela donne un image complexe de Jeedom pour les personnes qui n’ont jamais fait de programmation
Bonsoir, oui en effet vu comme ça, ça semble très compliqué. Cependant quand j’ai commencé avec Jeedom, ça me semblait aussi compliqué mais avec les membres de la communauté j’ai appris (j’apprends toujours d’ailleurs) à l’utiliser, tout au moins je suis arrivé à quelque chose de sympa. La puissance est énorme. J’en parle autour de moi dès que ça se présente. Et en plus c’est français. Non pas que je ne parle pas anglais si vous voyez ce que je veux dire.
Encore merci à tous