Zeiten als String änderbar machen.

Ich habe in meinem ganzen IPS Projekt Zeiten für Geräte Steuerung als Strings im Format „hh:mm“ hinterlegt.
Im Dashboard konnte ich die Zeiten mit +/- in vorgegebene Schritte ändern. Stunden/Tages Übergänge wurden auch richtig berechnet.

Wie kann man das im IPS-View vernünftig lösen ? Ich stehe da gerade auf dem Schlau ! :slight_smile:

Ich habe mal meinen Code für IPS-View abgeändert.
Er kann im SkriptButtom genutzt werden. Und ändert eine STRING Zeit im Format „hh:mm“.

Zeit Wert +

<?
$ID_Variable = xxxxx;
$wert = "+15";

//-----------------------------------------
$zeit = getValue($ID_Variable);
$zeit_STD = (int) SubStr($zeit,0,2);
$zeit_MIN = (int) SubStr($zeit,3,2);
$zeit_MIN = $zeit_MIN + $wert;
if ($zeit_MIN > 59){
	$zeit_MIN 	= $zeit_MIN - 60;
	$zeit_STD	= $zeit_STD + 1;
}
if ($zeit_STD > 23){
	$zeit_MIN 	= 0;
	$zeit_STD 	= 0;
}
$zeit = STR_PAD($zeit_STD,2,"0",STR_PAD_LEFT).":".STR_PAD($zeit_MIN,2,"0",STR_PAD_LEFT);
setvalue($ID_Variable, $zeit);
?>

Zweit Wert -

<?
$ID_Variable = xxxxx;
$wert = "-15";

//-----------------------------------------
$zeit = getValue($ID_Variable);
$zeit_STD = (int) SubStr($zeit,0,2);
$zeit_MIN = (int) SubStr($zeit,3,2);
$zeit_MIN = $zeit_MIN + $wert;
if ($zeit_MIN < 0){
	$zeit_MIN 	= 60 + $zeit_MIN;
	$zeit_STD 	= $zeit_STD - 1;
}
if ($zeit_STD < 0){
	$zeit_MIN 	= 60 + $wert;
	$zeit_STD 	= 23;
}
$zeit = STR_PAD($zeit_STD,2,"0",STR_PAD_LEFT).":".STR_PAD($zeit_MIN,2,"0",STR_PAD_LEFT);
setvalue($ID_Variable, $zeit);
?>