Guten Morgen dark99,
ich hab es bei mir mit Hilfe eines Freundes so lösen können.
IPSView:
Objektbaum:
Script Urlaub:
<?
// Urlaub
$VAR_Urlaub = 52151 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Urlaub]*/;
$VAR_Sind_Dann_Mal_Weg = 54416 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Sind dann mal Weg!]*/;
$VAR_Dauer_des_Urlaubs = 28439 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Dauer des Urlaubs]*/;
// Integer Variablen um Tag, Monat, Jahr in IPSView einzutragen
$VAR_Beginn_Minute = GetValue(42190 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Minute]*/);
$VAR_Beginn_Stunde = GetValue(25991 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Stunde]*/);
$VAR_Beginn_Tag = GetValue(15574 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Tag]*/);
$VAR_Beginn_Monat = GetValue(28140 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Monat]*/);
$VAR_Beginn_Jahr = GetValue(13063 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Jahr]*/);
$VAR_Ende_Minute = GetValue(57410 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Ende Minute]*/);
$VAR_Ende_Stunde = GetValue(54984 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Ende Stunde]*/);
$VAR_Ende_Tag = GetValue(14166 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Ende Tag]*/);
$VAR_Ende_Monat = GetValue(35661 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Ende Monat]*/);
$VAR_Ende_Jahr = GetValue(12857 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Ende Jahr]*/);
$VAR_StartTime = 57192 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Countdown_Timer_Urlaub\StartTime]*/;
$startTime = mktime($VAR_Beginn_Stunde, $VAR_Beginn_Minute, 0, $VAR_Beginn_Monat, $VAR_Beginn_Tag, $VAR_Beginn_Jahr); //Stunde, Minute, Sekunde, Monat, Tag, Jahr;
$endTime = mktime($VAR_Ende_Stunde, $VAR_Ende_Minute, 0, $VAR_Ende_Monat, $VAR_Ende_Tag, $VAR_Ende_Jahr);
SetValue($VAR_StartTime, $startTime);
$Urlaub_Beginn = "$VAR_Beginn_Jahr-$VAR_Beginn_Monat-$VAR_Beginn_Tag";
$Urlaub_Ende = "$VAR_Ende_Jahr-$VAR_Ende_Monat-$VAR_Ende_Tag";
$Tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
$VAR_Urlaub_Beginn = $Tage[date("w", $startTime)] .", ".date("d.m.Y", $startTime);
$VAR_Urlaub_Ende = $Tage[date("w", $endTime)] .", ".date("d.m.Y", $endTime);
$DateNow = strtotime("now");
IF ($DateNow <= $startTime)
{
SetValue($VAR_Urlaub, $VAR_Urlaub_Beginn ." - " .$VAR_Urlaub_Ende);
SetValue($VAR_Sind_Dann_Mal_Weg, "");
SetValue($VAR_Dauer_des_Urlaubs,Dauer($Urlaub_Beginn, $Urlaub_Ende));
IPS_SetEventActive(29968 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Countdown_Timer_Urlaub\Täglich alle 1 Sekunden]*/, true);
}
ELSEIF ($DateNow > $startTime and $DateNow < $endTime)
{
SetValue($VAR_Sind_Dann_Mal_Weg, "Wir sind dann mal weg!");
IPS_SetEventActive(29968 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Countdown_Timer_Urlaub\Täglich alle 1 Sekunden]*/, false);
}
ELSEIF ($DateNow > $endTime)
{
SetValue($VAR_Urlaub, "Kein Urlaub geplant");
SetValue($VAR_Sind_Dann_Mal_Weg, "");
SetValue($VAR_Dauer_des_Urlaubs, "");
}
function Dauer($Urlaub_Beginn, $Urlaub_Ende)
{
// Urlaubsdauer berechnen
$durationtime1 = date_create($Urlaub_Beginn);
$durationtime2 = date_create($Urlaub_Ende);
$durationdiff = date_diff($durationtime1, $durationtime2);
$Dauer = $durationdiff -> format('%a Tage');
#echo $durationdiff -> format('%R%a Tage');
return $Dauer;
}
?>
Script Countdown_Timer_Urlaub
<?
// Integer Variablen um Tag, Monat, Jahr in IPSView einzutragen
$VAR_Minute_Start = GetValue(42190 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Minute]*/);
$VAR_Stunde_Start = GetValue(25991 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Stunde]*/);
$VAR_Tag_Start = GetValue(15574 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Tag]*/);
$VAR_Monat_Start = GetValue(28140 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Monat]*/);
$VAR_Jahr_Start = GetValue(13063 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Urlaub\Beginn Jahr]*/);
$VAR_Countdown = 15530 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Countdown_Timer_Urlaub\Countdown]*/;
$startTime = GetValue(57192 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Countdown_Timer_Urlaub\StartTime]*/);
include "include_Countdown_Timer.ips.php";
?>
Script include_Countdown_Timer
<?
// Countdown Timer
// include_Countdown_Timer.ips.php
SetValue($VAR_Countdown,Countdown($startTime));
function Countdown($startTime)
{
// Countdown berechnen
//Aktuellezeit des microtimestamps nach PHP5, für PHP4 muss eine andere Form genutzt werden.
$timeNow = microtime(true);
//Berechnet differenz von der Endzeit vom jetzigen Zeitpunkt aus.
$diffTime = $startTime - $timeNow;
SetValue(30016 /*[Scripte & Variablen\Kalender & Termine\Urlaub\Countdown_Timer_Urlaub\DiffTime]*/, $diffTime);
//Zerlegt $diffTime am Dezimalpunkt, rundet vorher auf 2 Stellen nach dem Dezimalpunkt und gibt diese zurück.
$milli = explode(".", round($diffTime, 2));
$millisec = round($milli[1]);
//Berechnung für Tage, Stunden, Minuten
$day = floor($diffTime / (24*3600));
$diffTime = $diffTime % (24*3600);
$hours = floor($diffTime / (60*60));
$diffTime = $diffTime % (60*60);
$minutes = floor($diffTime / 60);
$seconds = $diffTime % 60;
$Countdown = $day." Tag(e) " .$hours." Stunde(n) " .$minutes." Minute(n) " .$seconds." Sekunde(n)";
IF ($diffTime > 0)
{
return $Countdown;
}
}
?>
Leider konnte ich bisher noch keine andere Lösung finden, ein Datum in IPSView einzutragen. Deshalb der Weg über mehrere Integer Variablen.
Vielleicht kannst du damit etwas anfangen.
Beste Grüße
Kai