Zeitabfrage / Zeitvergleich für Heizungstimer

Hallo,
trotz meiner halbwegs brauchbaren Programmierkenntnisse bin ich jetzt doch an meine Grenzen gestoßen und hoffe ihr könnt mir ein wenig weiterhelfen. Folgender Sachverhalt:

Ich habe in der WF zwei Eingabefelder für „Zeit Begin Heizen“ und „Zeit Ende Heizen“. Im WF kann man zwischen Zeiten im Halbstundenintervall wählen (6:00, 6:30, 7:00…). An IPS wird dann nur entsprechend des Profils eine INT-Zahl übergeben (1, 2, 3…) welche später im Script ausgewertet werden soll. Bis zur Übergabe funktioniert das auch. Nun kommt der schwierige Part.

Ich möchte nun ein Array erstellen, was jeder INT-Zahl eine entsprechende Tageszeit zuweist, die später verglichen werden kann. Im moment sieht das so aus:

$ZeitINT = 	array (  0,           	// [0]
							(6*60+00)*60, // [1] ...6:00 Uhr
							(6*60+30)*60, // [2] ...6:30 Uhr
							(7*60+00)*60, // [3] ...7:00 Uhr
...usw.

Problem: irgendwie muss noch das aktuelle Datum dazu, sonst fängt er an mit 6:00 Uhr am 1.Jan 1970.

Später wird dann die Startzeit und die Endzeit entsprechend der eingehenden INT-Zahl aus dem Array gelesen und zugewiesen:


$Startzeit = $ZeitINT[GetValueInteger (ID-des-WF-Elements )];

$Endzeit = $ZeitINT[GetValueInteger (ID-des-WF-Elements )];

Nun möchte ich einfach nur einen Vergleich anstellen:
Wenn Aktuelle Tageszeit zwischen Startzeit und Endzeit dann Heiztemperatur, ansonsten Absenktemperatur…so in der Art:

if ((date ("H:i",$Startzeit) <= time()) AND (time() <= date("H:i",$Endzeit)))
mache blablabla
ELSE
blablabla

Aber ich verhaspele mich immer mit den ganzen Zeit-Befehlen.
Letzenendes interessiert mich NUR die Tageszeit, nur die will ich vergleichen. Das Datum ist völlig irrelevant, was muss ich da beachten?

Und ein weiteres problem ist mir aufgefallen.
Wenn ich die Zeitzone mit date_default_timezone_set(‚Europe/Berlin‘); deklariere passt zwar die aktuelle Zeit ausgelesen mit time(), wenn ich jedoch z.B. die Tageszeit 6:00 Uhr deklarieren will, nach dem Schema oben (also 66060) gibt er stattdessen 7:00 Uhr aus.

Ich hoffe ihr könnt mir helfen. Weil eigentlich erscheint mir das recht trivial, nur verpeile ich anscheinend irgend etwas:confused:.
Vielen Dank schonmal.

Die entsprechende funktion ist „mktime“. Damit kannst Du einen Timestamp ermitteln.

$Var = GetValue(12345); // Integervariable 0= 6:00,.....
$zeit = 21600+ $Var*1800; // 21600 sekunden = 6:00 ; 1800 sekunden = 30 minuten
$zeit = date("d.m.Y H:i",mktime(0,0,$zeit)); //mktime =timstamp ermitteln von heute 0:00 Uhr + $zeit sekunden
echo $zeit;

Gruß
Attain