[Résolu] Date en Français
[Résolu] Date en Français
Bonsoir
Dans un Widget j'affiche une date sous le format valueDate(#[Présence][Présence][Présence]#,D d M H:i)
Ce qui m'affiche la date en Anglais
ne comprenant rien au PHP, je n'ai pas compris comment faire afficher la même chose en Français (jour et mois).
Sauriez-vous m'aider ?
D'avance merci pour votre aide
Dans un Widget j'affiche une date sous le format valueDate(#[Présence][Présence][Présence]#,D d M H:i)
Ce qui m'affiche la date en Anglais
ne comprenant rien au PHP, je n'ai pas compris comment faire afficher la même chose en Français (jour et mois).
Sauriez-vous m'aider ?
D'avance merci pour votre aide
Dernière édition par Merangle le 03 juil. 2018, 14:00, édité 1 fois.
-
- Timide
- Messages : 47
- Inscription : 05 janv. 2018, 16:29
Re: Date en Français
Merci pour cette information.
J'ai bien le format de la date sous la forme D d M H:i qui me donne "Fri 22 June 22:06".
Je voudrai la même chose mais en Français= "Ven 22 Juin 22:06".
Dans la page que tu proposes le format D donne le nom du jour en format Anglais ou dans la langue du serveur.
Quel serveur ?
Comment avoir le message en français ?
Désolé si je n'ai pas compris ta réponse.
Merci cependant de ton aide.
J'ai bien le format de la date sous la forme D d M H:i qui me donne "Fri 22 June 22:06".
Je voudrai la même chose mais en Français= "Ven 22 Juin 22:06".
Dans la page que tu proposes le format D donne le nom du jour en format Anglais ou dans la langue du serveur.
Quel serveur ?
Comment avoir le message en français ?
Désolé si je n'ai pas compris ta réponse.
Merci cependant de ton aide.
-
- Timide
- Messages : 47
- Inscription : 05 janv. 2018, 16:29
Re: Date en Français
Hello
Je peux voir le code de ton widget s'il te plaît ? Quel module il utilise etc etc..
Je peux voir le code de ton widget s'il te plaît ? Quel module il utilise etc etc..
Re: Date en Français
@garthounet
Voici une copie de mon widget
et le résultat
Comme tu peux le voire, la date est affichée en anglais et pas en français.
Merci de ton aide.
Voici une copie de mon widget
et le résultat
Comme tu peux le voire, la date est affichée en anglais et pas en français.
Merci de ton aide.
- Pièces jointes
-
- Capture.PNG (3.18 Kio) Consulté 4128 fois
-
- Timide
- Messages : 47
- Inscription : 05 janv. 2018, 16:29
Re: Date en Français
Hello
Effectivement je viens de tester et le retour est en anglais.
C'est plutôt bizarre car normalement ça devrait prendre en compte la langue du serveur.
Je peux te donner cette solution temporaire pour afficher la date sous la forme : "24/06/2018 19:04" en attendant que je trouve le pourquoi du comment
Il te suffit de remplacer la valeur actuel du champ par :
en me basant sur ta situation bien sûr. Laisse moi un peu de temps pour trouver ou se trouve cette fonction pour que je regarde :p
A bientôt !
Effectivement je viens de tester et le retour est en anglais.
C'est plutôt bizarre car normalement ça devrait prendre en compte la langue du serveur.
Je peux te donner cette solution temporaire pour afficher la date sous la forme : "24/06/2018 19:04" en attendant que je trouve le pourquoi du comment
Il te suffit de remplacer la valeur actuel du champ par :
Code : Tout sélectionner
valueDate(#[Présence][Présence][Présence]#, d/m/Y H:i)
A bientôt !
Re: Date en Français
Bonsoir
Merci pour ton aide.
J'avais déjà une solution équivalente avec des "-" au lieu de "/" entre le jour, le mois et l'année.
Mais je cherchais comment rendre le message plus lisible/compréhensible sous la forme "Dimanche 24 Juin".
C'est plus pour la facilité de lecture...
En tous les cas, ton aide est la bienvenue.
Bonne soirée et merci
Merci pour ton aide.
J'avais déjà une solution équivalente avec des "-" au lieu de "/" entre le jour, le mois et l'année.
Mais je cherchais comment rendre le message plus lisible/compréhensible sous la forme "Dimanche 24 Juin".
C'est plus pour la facilité de lecture...
En tous les cas, ton aide est la bienvenue.
Bonne soirée et merci
-
- Timide
- Messages : 47
- Inscription : 05 janv. 2018, 16:29
Re: Date en Français
Je suis entrain de regarder la fonction que les développeurs de Jeedom ont faite. Le problème c'est qu'ils utilisent la fonctionMerangle a écrit : ↑24 juin 2018, 19:56Bonsoir
Merci pour ton aide.
J'avais déjà une solution équivalente avec des "-" au lieu de "/" entre le jour, le mois et l'année.
Mais je cherchais comment rendre le message plus lisible/compréhensible sous la forme "Dimanche 24 Juin".
C'est plus pour la facilité de lecture...
En tous les cas, ton aide est la bienvenue.
Bonne soirée et merci
Code : Tout sélectionner
strtotime()
Code : Tout sélectionner
date()
L'idée serait de créer une nouvelle fonction pour gérer tout ça du genre
Code : Tout sélectionner
valueDateFr
Malheureusement ce n'est pas très "propre" de travailler comme ça. La classe contient des variables privées donc nous ne pouvons pas faire d'héritage de celle-ci
Je regarde la documentation en même temps d'écrire ce message et je vois qu'ils ont mis un système en place pour ajouter des fonctions personnalisées. Ils faut créer une fonction statique dans le fichier
Code : Tout sélectionner
/core/data/php/user.function.class.php
Code : Tout sélectionner
valueDate()
-
- Timide
- Messages : 47
- Inscription : 05 janv. 2018, 16:29
Re: Date en Français
Hello
Voilà ce que j'ai à te proposer
Das mon cas, je l'utilise comme ça:
Par défaut, la langue sera en français et la date sous le format "jeudi 01 janvier 01:33:38" mais tu peux modifier cela en indiquant des paramètres supplémentaires; exemple:
A la différence de la fonction initiale "valueDate()" celle-ci prends 3 paramètres; "équipement,langue,format". Je te préviens que tu ne pourra utiliser que les langues (locale) installées sur ton système
C'est ok, tu as tout compris ?
Voilà ce que j'ai à te proposer
Code : Tout sélectionner
public static function valueDateCustom($_cmd_id, $_locale = 'fr_FR.utf-8', $_format = '%A %d %B %H:%M:%S')
{
$cmd = cmd::byId(trim(str_replace('#', '', $_cd_id)));
if (!is_object($cmd)) {
return '';
}
$cmd->execCmd();
setlocale (LC_TIME, $_locale);
return strftime($_format, $cmd->getValueDate());
}
Code : Tout sélectionner
valueDateCustom(#[Salon][Capteur FIBARO][Présence]#)
Code : Tout sélectionner
valueDateCustom(#[Salon][Capteur FIBARO][Présence]#, fr_FR.utf-8, %H:%M:%S)
C'est ok, tu as tout compris ?
Re: Date en Français
Bonsoir
Je crois comprendre le principe.
Pour créer la fonction valueDateCustom il faut que je donne quelques droits d'accès samba et autre sur une machine Stretch sous VM Synology....
Un peu de customization et je te tiens informé.
Un grand merci
Je crois comprendre le principe.
Pour créer la fonction valueDateCustom il faut que je donne quelques droits d'accès samba et autre sur une machine Stretch sous VM Synology....
Un peu de customization et je te tiens informé.
Un grand merci
-
- Timide
- Messages : 47
- Inscription : 05 janv. 2018, 16:29
Re: Date en Français
Hello
J'ai fais une petite erreur dans ma fonction que je viens de corriger. Pour implémenter de nouvelles fonctions, tu édites le fichier situé ici
Si tu n'a jamais touché ce fichier il devrait être comme ça:
Il te suffit de le modifier pour qu'il soit comme ceci:
Tu enregistres et tu pourras utiliser cette fonction dans ton Jeedom, comme ceci:
Dans mon cas le retour est:
Pour gérer les locales installées sur ton serveur, il te suffit de gérer ça avec dpkg:
et tu te laisse guider par l'interface graphique du terminal. Tu ne peux utiliser que les locales installées sur ton système.
Pour gérer tes propres formats, il te suffit de te référer à cette page
A bientôt !
J'ai fais une petite erreur dans ma fonction que je viens de corriger. Pour implémenter de nouvelles fonctions, tu édites le fichier situé ici
Code : Tout sélectionner
/var/www/html/data/php/user.function.class.php
Code : Tout sélectionner
<?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 dirname(__FILE__) . '/../../core/php/core.inc.php';
class userFunction {
public static function plop($_arg1 = '') {
return 'Argument 1 : ' . $_arg1;
}
}
Code : Tout sélectionner
<?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 dirname(__FILE__) . '/../../core/php/core.inc.php';
class userFunction {
public static function plop($_arg1 = '') {
return 'Argument 1 : ' . $_arg1;
}
public static function valueDateCustom($_cmd_id, $_locale = 'fr_FR.utf-8', $_format = '%A %d %B %H:%M:%S')
{
$cmd = cmd::byId(trim(str_replace('#', '', $_cmd_id)));
if (!is_object($cmd)) {
return '';
}
$cmd->execCmd();
setlocale(LC_TIME, $_locale);
return ucfirst(strftime($_format, strtotime($cmd->getValueDate())));
}
}
Code : Tout sélectionner
valueDateCustom(#[Salon][Capteur FIBARO][Présence]#)
valueDateCustom(#[Salon][Capteur FIBARO][Luminosité]#)
valueDateCustom(#[Salon][Prise aquarium][Etat]#)
Code : Tout sélectionner
Lundi 25 juin 08:35:13
Lundi 25 juin 07:47:41
Lundi 25 juin 06:00:02
Code : Tout sélectionner
sudo dpkg-reconfigure locales
Pour gérer tes propres formats, il te suffit de te référer à cette page
A bientôt !
Re: Date en Français
Bonsoir
Un grand merci !!!! Cela marche super bien.
Une question:
Le format est en dur dans la première ligne ou y a-t-il un moyen de passer le format en argument de la fonction ?
Désolé je ne connais rien au Php!
Merci pour ton aide.
Un grand merci !!!! Cela marche super bien.
Une question:
Le format est en dur dans la première ligne ou y a-t-il un moyen de passer le format en argument de la fonction ?
Désolé je ne connais rien au Php!
Merci pour ton aide.
-
- Timide
- Messages : 47
- Inscription : 05 janv. 2018, 16:29
Re: Date en Français
Hello
Oui tu peux le passer en argument numéro 3 de la fonction. Quel format voudrais-tu ?
Oui tu peux le passer en argument numéro 3 de la fonction. Quel format voudrais-tu ?
Re: Date en Français
Hello
Compris
Du coup, j'ai inversé le deuxième et troisième argument. Je n'ai plus qu'à jouer sur le deuxième argument pour changer le format et éventuellement le 3ième argument si je veux changer la langue.
Un grand merci pour ce cours de php.
Compris
Du coup, j'ai inversé le deuxième et troisième argument. Je n'ai plus qu'à jouer sur le deuxième argument pour changer le format et éventuellement le 3ième argument si je veux changer la langue.
Un grand merci pour ce cours de php.
-
- Timide
- Messages : 47
- Inscription : 05 janv. 2018, 16:29
Re: Date en Français
Hello
Tu as bien fait d'inverser l'argument 2 et 3; effectivement cela permet de ne pas définir à chaque fois la locale à utiliser.
A bientôt !
Tu as bien fait d'inverser l'argument 2 et 3; effectivement cela permet de ne pas définir à chaque fois la locale à utiliser.
A bientôt !
-
- Timide
- Messages : 6
- Inscription : 05 mai 2019, 12:36
Re: Date en Français
hello,garthounet a écrit : ↑25 juin 2018, 08:40Hello
J'ai fais une petite erreur dans ma fonction que je viens de corriger. Pour implémenter de nouvelles fonctions, tu édites le fichier situé iciSi tu n'a jamais touché ce fichier il devrait être comme ça:Code : Tout sélectionner
/var/www/html/data/php/user.function.class.php
Il te suffit de le modifier pour qu'il soit comme ceci:Code : Tout sélectionner
<?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 dirname(__FILE__) . '/../../core/php/core.inc.php'; class userFunction { public static function plop($_arg1 = '') { return 'Argument 1 : ' . $_arg1; } }
Tu enregistres et tu pourras utiliser cette fonction dans ton Jeedom, comme ceci:Code : Tout sélectionner
<?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 dirname(__FILE__) . '/../../core/php/core.inc.php'; class userFunction { public static function plop($_arg1 = '') { return 'Argument 1 : ' . $_arg1; } public static function valueDateCustom($_cmd_id, $_locale = 'fr_FR.utf-8', $_format = '%A %d %B %H:%M:%S') { $cmd = cmd::byId(trim(str_replace('#', '', $_cmd_id))); if (!is_object($cmd)) { return ''; } $cmd->execCmd(); setlocale(LC_TIME, $_locale); return ucfirst(strftime($_format, strtotime($cmd->getValueDate()))); } }
Dans mon cas le retour est:Code : Tout sélectionner
valueDateCustom(#[Salon][Capteur FIBARO][Présence]#) valueDateCustom(#[Salon][Capteur FIBARO][Luminosité]#) valueDateCustom(#[Salon][Prise aquarium][Etat]#)
Pour gérer les locales installées sur ton serveur, il te suffit de gérer ça avec dpkg:Code : Tout sélectionner
Lundi 25 juin 08:35:13 Lundi 25 juin 07:47:41 Lundi 25 juin 06:00:02
et tu te laisse guider par l'interface graphique du terminal. Tu ne peux utiliser que les locales installées sur ton système.Code : Tout sélectionner
sudo dpkg-reconfigure locales
Pour gérer tes propres formats, il te suffit de te référer à cette page
A bientôt !
malgrès ca, ca reste en anglais pour moi même si je le force ... une idée ?
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité