Voilà avec un 2 listes dans un virtuel je vais créer des événements. La première j’ai le choix entre Aujourd’hui et Demain. La seconde entre AM ou PM.
Au final le scénario va utiliser l’action « Ajouter une date » pour un événement donné du plugin Agenda.
Il faut savoir que ce champ attend un string écrit exactement comme cela: AAAA-MM-JJ
Pour Aujourd’hui c’est facile. #annee#-mois#-#jour#
C’est pour Demain que cela se corse. Pour année et mois évidemment pas de problème. Mais pour le calcul du lendemain, il semble (je suis débutant) que se soit une usine à gaz. J’ai d’abord tenté ma chance avec #jour# + 1 et des variantes autour de cela.
Finalement j’ai trouvé cette fonction time_op(#jour#, 1). Problème, elle ne me renvoit pas 17 (on est le 16) mais 017. J’ai donc écrit ltrim(time_op(#jour#, 1)) et ca marche …
… Sauf qu’en début du mois prochain je vais me retrouver avec un seul digit (1, 2, 3,etc). Je ne vais tout de même pas faire un fonction spéciale pour cela (d’autant plus que sorti de visual basic je suis out) en php? il doit y avoir plus simple tout de même?
il faut travailler avec des timestamp, timestamp est un nombre exprimé en secondes depuis une date de référence que l’ont peut convertir selon plein de format disponible…
exemple si l’on prend la date du jour soit un nombre de secondes et que l’on veut le jour suivant, on ajoute (24 * 60 * 60) on converti le tout avec une fonction date(« format »,timestamp);et le tour est jouer
pour les format possible je te laisse regarder la documentation de la fonction date php https://www.php.net/manual/fr/function.date.php
n’hésite pas a poser des questions si tu est perdu
Ce n’est pas n’importe quoi, c’est vous qui demandez un format inapproprié. Voir le paramètre format dans la commande date dans le lien fourni par @olive au dessus.
Pour 2002 hier ou 2001 aujourd’hui, c’est le résultat du calcul 2020 -1 -18
Si vous voulez un texte il ne faut pas mettre de signe permettant un calcul:
Exemple avec ‹ Y m d › pour le format dans la commande date:
Non, cela fonctionne très bien dans un bloc code et ce n’est pas un format inapproprié, il peut choisir le format qu’il veut.
Je dirai que c’est plutôt le « testeur d’expression » qui ne sait pas ou il doit s’arrêter.
Hello , j’ai la solution ultime avec cette fonction PHP que j’ai ajouté comme indiqué dans la doc des scénario :
# 6) Ajout de fonction php
**IMPORTANT**
L’ajout de fonction PHP est reservé aux utilisateurs avancés. La moindre erreur peut faire planter votre Jeedom
## 6.1) Mise en place
Aller dans la configuration de Jeedom, puis OS/DB et lancer l’éditeur de fichier.
Allez dans le dossier data puis php et cliquez sur le fichier user.function.class.php.
C’est dans cette class que vous devez ajouter vos fonctions, vous y trouverez un exemple de fonction basique.
**IMPORTANT**
Si vous avez un soucis vous pouvez toujours revenir au fichier d’origine en copier le contenu de user.function.class.sample.php dans user.function.class.php
Voilà le fichier tel que je l’ai modifié :
<?php
/* This file is part of Jeedom.
*
* Jeedom is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Jeedom is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Jeedom. If not, see <http://www.gnu.org/licenses/>.
*/
/* * ***************************Includes********************************* */
require_once __DIR__ . '/../../core/php/core.inc.php';
class userFunction {
public static function plop($_arg1 = '') {
return 'Argument 1 : ' . $_arg1;
}
public static function demain($arg = '') {
return date('Y-m-d',strtotime('tomorrow'));
}
}
Après ça il suffit d’utiliser demain() dans les sénarios ou autre calculs.
Des fonctions personnelles, j’en ai créé pas mal en vba, par exemple, pour Excel ou Access. C’est effectivement l’idéal quand on n’a pas de fonction clé en main. Au moment où j’ai créé ce sujet, j’étais un gros gros débutant avec Jeedom. Donc très frileux d’exploiter ce genre de piste au départ. Je suis depuis bien plus à l’aise … mais probablement pas encore tout à fait prêt pour aller moi-même faire l’équivalent (pourtant simple) à ce niveau.
Mais non seulement, je retiens ta solution, mais en plus je retiens où on peut donc aller se créer ses fonctions. Merci