Script ausfüren wenn Uhrzeit größer x

Hallo zusammen,

ich habe folgendes problem.

Wenn ich einen Taster betätige soll ein Script ausgeführt werden.
Soweit klar.
In dem Script möchte ich verschiedene Geräte schalten, wenn die Uhrzeit größer 21:00:00 ist.

Wie kann ich das mit php machen?

if uhrzeit > „21:00:00“ dann
SteckA ausschalten
SteckB ausschalten
endif

gruß
duk64


if(date("H") >= 21)
{
..
}

paresy

danke paresy für die Schnelle Antwort,
ich werde es ausprobieren.

Wie man hier sehen kann hab ich wenig bis keine Ahnung von PHP.

Besten Dank!!

$time = date("H:i");
if($time == "21:00")
{
    //mache dies und das
}

musst Du entsprechend triggern.

Danke RWN, das ist noch besser,

Date war der Tip den ich brauchte.

Warum es ein i sein muss konnte ich hier:

PHP date - Datum und Zeit ausgeben

nachlesen.

Dank an alle…

Diese Lösung macht „dies und das“ aber nur um genau 21:00 Uhr - da ist das nicht geeignet. Mit ner kleinen Änderung gehts aber auch:

$time = intval(date("Hi"));
if($time >= 2100)
{
    //mache dies und das
}

Stefan

PS: Die Lösung von paresy funktioniert übrigens erst ab 22:00 Uhr :wink:


if(date("H") > 20)
{
..
}

Ist paresys abgewandelte Lösung nicht die einfachste für „ab 21:00“ ?

Genau, oder die obige (nun korrigierte) Version.
Ich wollte mit meiner Antwort nur zum Verständnis beitragen, und da kann man Minuten auch noch berücksichtigen (falls das wer mal brauchen sollte).

Stefan

Ich möchte gerne das zwischen 0:00 und 07:00 falls meine Lampe in Wohnzimmer nicht brennt ein Script ausgeführt wird. Leider macht er das nicht. Nach 7:00h und vor 24:00h klappt alles wie gedacht.

Jemand eine Idee?

$id1= 12537 /*[Sender\Bad FS20 Bewegungsmelder Dusche\Status]*/ ;
$id2= 51095 /*[Sender\Bad FS20 Bewegungsmelder Bad\Status]*/ ;
$id3= 44036 /*[Empfänger\Bad FS20 Licht\Status]*/ ;
$licht_fluter=15250 /*[Empfänger\Wohnzimmer FS20 Licht Fluter\Status]*/;
$licht_schraege=13948 /*[Empfänger\Wohnzimmer FS20 Licht Schräge\Status]*/;
$tv=22721 /*[Infrarot-Geräte\TV\Status]*/;
$actual_time = date("H:i");
$day = date("w");


If (!GetValueBoolean($id3)) //Wenn Licht im Bad aus
{
//Wenn Licht Wohnung aus und
//+ Uhrzeit zwischen 24h und 7h  dann Licht dimmen Stufe 5.
	If (!GetValueBoolean($licht_fluter) and $actual_time >= "00:00" and $actual_time <= "06:59" )
		{
	  	   FS20_SetIntensity(19627 /*[Empfänger\Bad FS20 Licht]*/, 5, -1);
		   IPS_Sleep(200);
		   FS20_SetIntensity(19627 /*[Empfänger\Bad FS20 Licht]*/, 5, -1);
		}
// Uhrzeit zwischen 7h und 12hdann  Licht Stufe 15
   If ($actual_time >= "07:00" and $actual_time <= "12:00" )
		{
       	FS20_SetIntensity(19627 /*[Empfänger\Bad FS20 Licht]*/, 15, -1);
	      IPS_Sleep(200);
	      FS20_SetIntensity(19627 /*[Empfänger\Bad FS20 Licht]*/, 15, -1);
	 	}
//Ansonsten Licht dimmen auf Stufe 11
	Else 
		{
		  	FS20_SetIntensity(19627 /*[Empfänger\Bad FS20 Licht]*/, 11, -1);
	      IPS_Sleep(200);
	      FS20_SetIntensity(19627 /*[Empfänger\Bad FS20 Licht]*/, 11, -1);
		}
}





?>

Was macht „er“ denn in der Zeit? Gewöhnlich macht „er“ genau das, was der Anwender programmiert hat .
Wird der erste if-Block oder der else-Block ausgeführt?

Versuch es mal mit einer Abfrage, entweder als case oder mit elseif.

Hallo

Bei deinem Programm wird das erste IF und dein ELSE ausgefuehrt
weil sich dein ELSE nur auf das zweite IF bezieht.
Entweder CASE oder wenn du bei IF bleiben willst dein ELSE
ersetzen durch

If ($actual_time > „12:00“ )

Ok. ich habe das zweite „if“ durch „else if“ ersetzt. habe mehrere Uhrzeiten durchgespielt und es scheint jetzt zu funktionieren.:smiley:

Danke für eure hilfe.