Bonjour,
Le Plugin JMQTT me donne une info d’un device sous forme « 2021-01-03T17:53:25.259768753Z ».
j’aimerai pouvoir le transformer en « 03/01/2021 17;53 » directement en utilisant un widget ou en passant par un virtuel.
Je ne trouve pas de widget (cela ne m’etonne pas trop) mais je n’arrive pas faire la conversion en php dans le virtuel.
Quelqu’un aurait-il une solution? La fonction Date ne fonctionne qu’avec un TimeStamp.
Merci
SWR
Janvier 3, 2021, 6:47
3
ou quelques chose du syle : date('H:i:s', time());
note avec des guillemets à la place de < et >(je n’arrive pas à afficher)
Bben
Janvier 3, 2021, 6:53
4
Bonjour a tous,
J’ai eu un truc similaire il y a qques temps,
j’ai bypassé en nettoyant la string et en passant par un DateTime::createFromFormat, du genre
$d =str_replace(array('T','Z'),array(' ',''), "2021-01-03T17:53:25.259768753Z");
$theDate=DateTime::createFromFormat("Y-m-d G:i:s", $d);
1 « J'aime »
date('d/m/Y à H:i:s',strtotime(substr("2021-01-03T17:53:25.259768753Z",0,19)))
2 « J'aime »
Via widget c’est une date en ISO toISOString
The toISOString() method of Date instances returns a string representing this date in the date time string format, a simplified format based on ISO 8601, which is always 24 or 27 characters long (YYYY-MM-DDTHH:mm:ss.sssZ or...
C’est assez simple d’extraire l’info et reformater pour ton besoin
(Manque heure et minute mais c’est pareil via get) tu as l’exemple dans le 1er lien
2 « J'aime »
je regarde demain et vous ferais un retour sur mes tests
merci
Mips
Janvier 3, 2021, 11:12
8
Roohh tu ne connais pas le bouton </>
dans la barre d’outils lors de la rédaction d’un message ?
J’ai édité ton post pour le formater
sur un input date et heure j’ai le même resultat que toi
aprés modif du widget info
info « essai datetime-local »
<div class="cmd cmd-widget #history#" data-type="info" data-subtype="string" data-template="default" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
<div class="content-xs">
<span class="cmdName #hide_name#">#name_display# </span> <strong class="state"></strong>
</div>
<script>
function pad(number) {
if (number < 10) {
return '0' + number;
}
return number;
}
jeedom.cmd.update['#id#'] = function(_options) {
var cmd = $('.cmd[data-cmd_id=#id#]')
cmd.attr('title','Date de valeur : '+_options.valueDate+'<br/>Date de collecte : '+_options.collectDate)
date = new Date(_options.display_value);
var result = pad(date.getDate()) +
'-' + pad(date.getMonth()+1) +
'-' + date.getFullYear() +
' ' + pad(date.getHours()) +
':' + pad(date.getMinutes());
cmd.find('.state').empty().append(result)
if(_options.alertLevel){
if(_options.alertLevel == 'warning'){
cmd.addClass('label label-warning')
cmd.attr('data-alertlevel','warning');
}else if(_options.alertLevel == 'danger'){
cmd.addClass('label label-danger')
cmd.attr('data-alertlevel','danger');
}else{
cmd.removeClass('label label-warning label-danger')
cmd.attr('data-alertlevel','none');
}
}
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'})
</script>
</div>
par contre si tu veux réutilisé cette info pour un scénario ou cmd là tu devras passé par du php car ce n’est que le rendu « visuel » qui change et non la valeur
1 « J'aime »
SWR
Janvier 4, 2021, 6:38
10
Merci, j’adore le cri de rage « Roohh »
1 « J'aime »
Mips
Janvier 4, 2021, 6:48
11
C’était plutôt « roooh » pas de rage mais d’étonnement avec un sourire en coin
Tu n’as pas vu la différence ?
SWR
Janvier 4, 2021, 6:54
12
Je l’avais vu un peu comme le lion de la pub Perrier de 1990, comme ça fait 30ans, j’aide un peu)
Dans mon souvenir c’était pas exactement comme ça, mais bon, le principal est là
1 « J'aime »
system
A fermé ce sujet ()
Janvier 8, 2021, 4:12
13
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.