23) return "??:??:??"; if ($minute < 0 || $minute > 59) return "??:??:??"; if ($sekunde < 0 || $sekunde > 59) return "??:??:??"; ## Rückgabe return $stunde.":".$minute.":".$sekunde; } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Input: 14er Timestamp. ## Output: Zeitangabe, wie folgt formatiert HH.MM zurück ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function convert_timestamp_to_shorttime($timestamp) { ## Testen if (strlen($timestamp) != 14) return "??:??"; if (ereg("[^0-9]",$timestamp)) return "??:??"; ## Aufteilen $jahr = substr($timestamp,0,4); $monat = substr($timestamp,4,2); $tag = substr($timestamp,6,2); $stunde = substr($timestamp,8,2); $minute = substr($timestamp,10,2); $sekunde = substr($timestamp,12,2); ## Testen des Datums if (checkdate($monat, $tag, $jahr) == false) return "??:??"; ## Testen der Zeitangaben if ($stunde < 0 || $stunde > 23) return "??:??"; if ($minute < 0 || $minute > 59) return "??:??"; if ($sekunde < 0 || $sekunde > 59) return "??:??"; ## Rückgabe return $stunde.":".$minute; } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Input: Datums- und Zeitabgaben ## Output: 14er Timestamp ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function check_and_create_timestamp($jahr, $monat, $tag, $stunde, $minute, $sekunde) { ## Prüfen der Übergaben, ob Sie nur aus Zahlen bestehen if (ereg("[^0-9]",$jahr)) return false; if (ereg("[^0-9]",$monat)) return false; if (ereg("[^0-9]",$tag)) return false; if (ereg("[^0-9]",$stunde)) return false; if (ereg("[^0-9]",$minute)) return false; if (ereg("[^0-9]",$sekunde)) return false; ## Zahlen mit Nullen auffüllen $jahr = str_pad($jahr,4,0,STR_PAD_LEFT); $monat = str_pad($monat,2,0,STR_PAD_LEFT); $tag = str_pad($tag,2,0,STR_PAD_LEFT); $stunde = str_pad($stunde,2,0,STR_PAD_LEFT); $minute = str_pad($minute,2,0,STR_PAD_LEFT); $sekunde = str_pad($sekunde,2,0,STR_PAD_LEFT); ## Zahlen prüfen, bei Fehler "false" if (checkdate($monat,$tag,$jahr) == false) return false; ## Zeitdaten prüfen, bei Fehler "false" if ($stunde < 0 || $stunde > 23) return false; if ($minute < 0 || $minute > 59) return false; if ($sekunde < 0 || $sekunde > 59) return false; ## Rückgabe des richtigen Timestamp return $jahr.$monat.$tag.$stunde.$minute.$sekunde; } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Input: 14er Timestamp ## Output: Unix Zeitstempel ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function convert_timestamp_to_unix_time($timestamp) { ## Ersetzen aller Nicht Zahlen $timestamp = ereg_replace("[^0-9]",0,$timestamp); ## Aufteilen $jahr = substr($timestamp,0,4); $monat = substr($timestamp,4,2); $tag = substr($timestamp,6,2); $stunde = substr($timestamp,8,2); $minute = substr($timestamp,10,2); $sekunde = substr($timestamp,12,2); ## Zurückgeben return mktime($stunde, $minute, $sekunde, $monat, $tag, $jahr); } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Input: 14er Timestamp + Verschiebung in Sekunden ## Output: Neuer Timestamp ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function berechne_timestamp($timestamp, $verschiebung = "0") { ## Nur Zahlen sicherstellen $timestamp = ereg_replace("[^0-9]","",$timestamp); $verschiebung = ereg_replace("[^0-9-]","",$verschiebung); ## In Unix Zeit umwandeln $unix = $this->convert_timestamp_to_unix_time($timestamp); ## Sekundenverschiebung durchführen $unix = $unix + $verschiebung; ## Zurück in einen Timestamp umwandeln return date("YmdHis",$unix); } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Input: 14er Timestamp + Verschiebungen in verschiedenen Zeitformaten ## Output: Neuer Timestamp ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function berechne_timestamp_verschiebung_ymdhis($timestamp, $jahre = 0, $monate = 0, $wochen = 0, $tage = 0, $stunden = 0, $minuten = 0, $sekunden = 0) { ## Sicherstellen, dass nur Integer Werte benutzt werden $timestamp = ereg_replace("[^0-9]","",$timestamp); $jahre = ereg_replace("[^0-9]","",$jahre); $monate = ereg_replace("[^0-9]","",$monate); $wochen = ereg_replace("[^0-9]","",$wochen); $tage = ereg_replace("[^0-9]","",$tage); $stunden = ereg_replace("[^0-9]","",$stunden); $minuten = ereg_replace("[^0-9]","",$minuten); $sekunden = ereg_replace("[^0-9]","",$sekunden); ## Verschiebung $timestamp = $this->berechne_timestamp($timestamp, $sekunden); ## Sekundenverschiebung $timestamp = $this->berechne_timestamp($timestamp, ($minuten * 60)); ## Minutenverschiebung $timestamp = $this->berechne_timestamp($timestamp, ($stunden * 60 * 60)); ## Stundenverschiebung $timestamp = $this->berechne_timestamp($timestamp, ($tage * 60 * 60 * 24)); ## Tagesverschiebung $timestamp = $this->berechne_timestamp($timestamp, ($wochen * 60 * 60 * 24 * 7)); ## Wochenverschiebung ## Isolieren des Monates und des Jahres $timestamp_monat = substr($timestamp,4,2); ## Monatsberechnung $timestamp_jahr = substr($timestamp,0,4); ## Verschiebung der Monate $timestamp_monat = $timestamp_monat + $monate; while ($timestamp_monat > 12) { $timestamp_monat = $timestamp_monat - 12; $timestamp_jahr = $timestamp_jahr + 1; } while ($timestamp_monat < 0) { $timestamp_monat = $timestamp_monat + 12; $timestamp_jahr = $timestamp_jahr - 1; } $temp_timestamp = $this->check_and_create_timestamp($timestamp_jahr, $timestamp_monat,1,0,0,0); $timestamp = substr($temp_timestamp,0,6).substr($timestamp,6,8); ## Verschiebung der Jahre $timestamp = (substr($timestamp,0,4) + $jahre).substr($timestamp,4,10); ## Jahresberechnung ## Rückgabe des neuen Timestamps return $timestamp; } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Input: Zwei microtime() Zeitstempel ## Output: Betrag der Differenz in Sekunden ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function berechne_sekunden_differenz_zwischen_microtime_zeitstempeln($microtime_a, $microtime_b) { ## Microzeitstempel aufteilen $exp_microtime_a = explode(" ",$microtime_a); $exp_microtime_b = explode(" ",$microtime_b); ## In Sekunden umstrukturieren $sec_a = $exp_microtime_a[1].".".substr($exp_microtime_a[0],2,20); $sec_b = $exp_microtime_a[1].".".substr($exp_microtime_b[0],2,20); ## Differenz berechnen $differenz = $sec_a - $sec_b; ## Positive Sekundendifferenz zurückgeben if ($differenz < 0) return ($differenz * (-1)); if ($differenz >= 0) return $differenz; } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Input: Zeit TIMESTAMP Zeitstempel ## Output: Betrag der DIfferenz in Sekunden ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function berechne_sekunden_differenz_zwischen_timestamp_zeitstempeln($timestamp_frueher, $timestamp_spaeter) { ## Sicherstellen das Integer Werte übergeben werden $timestamp_frueher = ereg_replace("[^0-9]","",$timestamp_frueher); $timestamp_spaeter = ereg_replace("[^0-9]","",$timestamp_spaeter); ## Umrechnen in Unix Timestamps $unix_frueher = $this->convert_timestamp_to_unix_time($timestamp_frueher); $unix_spaeter = $this->convert_timestamp_to_unix_time($timestamp_spaeter); ## Rückgabe der Differenz return ($unix_spaeter - $unix_frueher); } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Prüft einen 8er Zeitstempel auf Gültigkeit ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function ist_datum_gueltig_timestamp8($timestamp) { ## Sicherstellen, dass es sich nur um Zahlen handelt $timestamp = ereg_replace("[^0-9]","",$timestamp); ## Aufteilen des Timestamps $jahr = substr($timestamp,0,4); $monat = substr($timestamp,4,2); $tag = substr($timestamp,6,2); ## Prüfung if (checkdate($monat, $tag, $jahr) == false) return false; ## Rückgabe return true; } ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ ## Prüft einen 14er Zeitstempel auf Gültigkeit ## ------------------------------------------------------------------------------------------------------------------------------------------------------------ function ist_datum_gueltig_timestamp14($timestamp) { ## Sicherstellen, dass es sich nur um Zahlen handelt $timestamp = ereg_replace("[^0-9]","",$timestamp); ## Aufteilen des Timestamps $jahr = substr($timestamp,0,4); $monat = substr($timestamp,4,2); $tag = substr($timestamp,6,2); $stunde = substr($timestamp,8,2); $minute = substr($timestamp,10,2); $sekunde = substr($timestamp,12,2); ## Prüfen der Uhrzeit if ($stunde < 0 || $stunde > 23) return false; if ($minute < 0 || $minute > 59) return false; if ($sekunde < 0 || $sekunde > 59) return false; ## Prüfen des Datums if (checkdate($monat, $tag, $jahr) == true) return true; else return false; } } ?>